Задавайте вопросы, мы ответим
Вы не зашли.
всем привет. есть 3 таблицы.
как правильно выбрать все классы для препода с id = 1(или с id = 2, c условием WHERE) и его комментариями(если нет комментария, то оставляем NULL)?
если он не оставлял комментарий, то тоже нужно выбрать этот класс
как правильно сджоинить?
https://prnt.sc/i6md2k
https://prnt.sc/i6md4r
https://prnt.sc/i6md6n
если сделать как-то так, то не выбирается 4ый класс id=4 name=DD
SELECT * FROM class LEFT JOIN comments ON comments.id_class = class.id WHERE comments.id_prepod = 1 OR comments.id_prepod IS NULL
Неактивен
1-й преподаватель делал "комментарии" только в 1-м и 2-м классе, так что 4-й класс естественно не выберется.
Неактивен
deadka написал:
1-й преподаватель делал "комментарии" только в 1-м и 2-м классе, так что 4-й класс естественно не выберется.
итоговая должна примерно выглядеть вот так - http://prntscr.com/i6mjj0
Неактивен
Попробуйте
Неактивен
deadka написал:
Попробуйте
SELECT * FROM class LEFT JOIN comments ON comments.id_class = class.id AND comments.id_prepod = 1
Если не то, то создайте пример на sqlfiddle.com с этими таблицами и тестовыми данными и киньте сюда, в тред ссылку.
да вроде то, что нужно)) спасибо
решение еще и такое есть)
SELECT class.id,class.name, comments.comment,prepod.id,prepod.name
FROM class
LEFT JOIN comments ON comments.id_class = class.id and comments.id_prepod = 1
LEFT JOIN prepod ON prepod.id = comments.id_prepod
Отредактированно belzm (28.01.2018 15:45:14)
Неактивен
Ну преподавателей нужно джоинить, если нужны из данные помимо id ).
Неактивен