Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2018, 09:43   #1
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
belzm вне форума Ответить с цитированием
Старый 28.01.2018, 09:58   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Для начала показать все здесь в нормальном виде, а не кучей ссылок на скриншоты
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.01.2018, 10:00   #3
belzm
Новичок
Джуниор
 
Регистрация: 28.01.2018
Сообщений: 3
По умолчанию

извиняюсь, не увидел сразу кнопку загрузки
Изображения
Тип файла: png class.png (10.6 Кб, 80 просмотров)
Тип файла: png comments.png (13.3 Кб, 80 просмотров)
Тип файла: png prepod.png (7.6 Кб, 80 просмотров)
Тип файла: png U-oaozZBTEawmVRHNBruVQ.png (14.0 Кб, 79 просмотров)
belzm вне форума Ответить с цитированием
Старый 28.01.2018, 10:26   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
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
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.01.2018, 15:43   #5
belzm
Новичок
Джуниор
 
Регистрация: 28.01.2018
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
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
вроде вот так заработало как нужно было) и ваш вариант такой же результат дает) спасибо
Код:
SELECT * FROM class LEFT JOIN comments ON comments.id_class = class.id AND comments.id_prepod = 1
belzm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из нескольких таблиц Olejik SQL, базы данных 1 21.06.2013 12:53
Выборка из нескольких таблиц averardo SQL, базы данных 3 18.06.2013 00:13
Выборка из нескольких таблиц Ardarik SQL, базы данных 15 24.05.2013 17:01
Запрос. Выборка из нескольких таблиц Ol'ga БД в Delphi 2 16.05.2012 22:54
Выборка данных из нескольких таблиц Alxxxx74 Microsoft Office Excel 1 22.07.2010 08:58