SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.01.2018 09:45:02

belzm
Участник
Зарегистрирован: 28.01.2018
Сообщений: 3

Выборка из нескольких таблиц с JOIN

всем привет. есть 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

Неактивен

 

#2 28.01.2018 09:55:08

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка из нескольких таблиц с JOIN

1-й преподаватель делал "комментарии" только в 1-м и 2-м классе, так что 4-й класс естественно не выберется.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 28.01.2018 10:01:07

belzm
Участник
Зарегистрирован: 28.01.2018
Сообщений: 3

Re: Выборка из нескольких таблиц с JOIN

deadka написал:

1-й преподаватель делал "комментарии" только в 1-м и 2-м классе, так что 4-й класс естественно не выберется.

итоговая должна примерно выглядеть вот так - http://prntscr.com/i6mjj0

Неактивен

 

#4 28.01.2018 10:21:11

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка из нескольких таблиц с JOIN

Попробуйте

SELECT * FROM class LEFT JOIN comments ON comments.id_class = class.id AND comments.id_prepod = 1

Если не то, то создайте пример на sqlfiddle.com с этими таблицами и тестовыми данными и киньте сюда, в тред ссылку.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 28.01.2018 15:44:43

belzm
Участник
Зарегистрирован: 28.01.2018
Сообщений: 3

Re: Выборка из нескольких таблиц с JOIN

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)

Неактивен

 

#6 28.01.2018 15:56:13

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка из нескольких таблиц с JOIN

Ну преподавателей нужно джоинить, если нужны из данные помимо id ).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson