За последние 24 часа нас посетили 22375 программистов и 1279 роботов. Сейчас ищут 776 программистов ...

Помогите пжалст с запросом =\

Тема в разделе "PHP для новичков", создана пользователем schmidt, 21 июн 2017.

  1. schmidt

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

    С нами с:
    9 сен 2012
    Сообщения:
    13
    Симпатии:
    1
    Мне известны:

    - id раздела форума
    - id форума
    - id подфорума

    Нужно вывести все темы.
    В таблице у меня 1 тема, но этот запрос возвращает эту тему 2 раза.
    Вторая тема такая же, только имя подфорума другое.

    Код (Text):
    1. SELECT
    2.         THEMES.name,
    3.         SECTION.name,
    4.         FORUM.name,
    5.         SUBFORUM.name
    6.     FROM
    7.         THEMES
    8.     LEFT JOIN
    9.         SECTION ON SECTION.id = 1
    10.     LEFT JOIN
    11.         FORUM ON FORUM.id = 1
    12.     LEFT JOIN
    13.         SUBFORUM ON SUBFORUM.forum_id = 2
    14.     WHERE
    15.         THEMES.forum_id = 1 AND THEMES.subforum_id = 2
    Я по логике думал так:

    - Тему выбрали (WHERE условие) и просто добавляем несколько значений из полей других таблиц (имя раздела/форума/подфорума)

    Но раз тема одна (в таблице THEMES), то как он её выбирает 2 раза (FROM THEMES же).
    Я пока не очень дружу с такими запросами, подскажите пжалст.
     
  2. schmidt

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

    С нами с:
    9 сен 2012
    Сообщения:
    13
    Симпатии:
    1
    Сделал так:

    Код (Text):
    1. LEFT JOIN
    2.         SUBFORUM ON SUBFORUM.forum_id = 2 AND THEMES.subforum_id = SUBFORUM.id
    И стало норм.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    обычно применяют просто группировку, например
    Код (Text):
    1.  GROUP BY THEMES.id
    а вообще, в джойнах пишут связи, что чему соответствует и стараются не писать конкретные условия
    условия в WHERE
    я не очень структуру БД у вас понимаю, но что-то мне подсказывает, что можно сделать запрос проще и правильнее )
     
  4. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    Зависит от целей и ожидаемого результата.
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @schmidt
    Покажи поля свои этой таблицы.
    Че то в запросе ты усложнил я если честно не понял, может синтаксис мне не понятен)