За последние 24 часа нас посетили 20289 программистов и 1081 робот. Сейчас ищут 777 программистов ...

Помогите составить запрос sql

Тема в разделе "PHP и базы данных", создана пользователем AnteFil, 26 июл 2020.

  1. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    В базе есть город и регион мне нужно взять из базы города одного региона, а для запроса есть только город. Если по простому то получается два запроса первым я получаю регион а вторым все города региона.
    Код (Text):
    1. SELECT * FROM `spisok` WHERE `city`="$city"
    $region забираем регион
    Вторым запросом получаю города региона
    Код (Text):
    1. SELECT * FROM `spisok` WHERE `region`="$region"
    Хочу уместить в один запрос
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Структура бд какая?
    Так то одним запросом делается через left join
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Код (Text):
    1. SELECT * FROM `spisok` AS s1
    2. LEFT JOIN spisok AS s2 ON s2.region=s1.region && s2.`city`="$city"
    3. Group by s1.id
    Типа такого
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    @ADSoft почему ты использовал LEFT join, ты полагаешь, что некоторые города не имеют региона?
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Меня учили, что LEFT JOIN не для этого нужен. Тут вложенный запрос – норм.
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    Я предположительно написал. Структуру, тип полей и прочее не знаю