Мне известны: - id раздела форума - id форума - id подфорума Нужно вывести все темы. В таблице у меня 1 тема, но этот запрос возвращает эту тему 2 раза. Вторая тема такая же, только имя подфорума другое. Код (Text): SELECT THEMES.name, SECTION.name, FORUM.name, SUBFORUM.name FROM THEMES LEFT JOIN SECTION ON SECTION.id = 1 LEFT JOIN FORUM ON FORUM.id = 1 LEFT JOIN SUBFORUM ON SUBFORUM.forum_id = 2 WHERE THEMES.forum_id = 1 AND THEMES.subforum_id = 2 Я по логике думал так: - Тему выбрали (WHERE условие) и просто добавляем несколько значений из полей других таблиц (имя раздела/форума/подфорума) Но раз тема одна (в таблице THEMES), то как он её выбирает 2 раза (FROM THEMES же). Я пока не очень дружу с такими запросами, подскажите пжалст.
Сделал так: Код (Text): LEFT JOIN SUBFORUM ON SUBFORUM.forum_id = 2 AND THEMES.subforum_id = SUBFORUM.id И стало норм.
обычно применяют просто группировку, например Код (Text): GROUP BY THEMES.id а вообще, в джойнах пишут связи, что чему соответствует и стараются не писать конкретные условия условия в WHERE я не очень структуру БД у вас понимаю, но что-то мне подсказывает, что можно сделать запрос проще и правильнее )
@schmidt Покажи поля свои этой таблицы. Че то в запросе ты усложнил я если честно не понял, может синтаксис мне не понятен)