powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Включение фамилий
8 сообщений из 8, страница 1 из 1
Включение фамилий
    #39369431
deniSinyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывожу запрос, успеваемость класса. Выводит норм все , но когда хочу за определенный месяц то выводит только те фамилии у который стоят оценки.Хочу чтоб выводил все фамилии даже где на стоят. Как исправить?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SET lc_time_names = 'ru_UA';
SELECT schoolboy.family AS Фамилия,
    MAX(IF(dayofmonth(perfomance.date_delivery)= 1,opinion.title,'')) '1' ,
    MAX(IF(dayofmonth(perfomance.date_delivery)= 2,opinion.title,'')) '2' ,
    .....................................................................................................
    MAX(IF(dayofmonth(perfomance.date_delivery)= 31,opinion.title,'')) '31' 
    
FROM perfomance
RIGHT    JOIN  schoolboy ON perfomance.id_schoolboy  = schoolboy.id  
LEFT      JOIN opinion  ON opinion.id = perfomance.id_opinion
WHERE DATE_FORMAT( date_delivery, '%M' ) = 'Август'
GROUP BY schoolboy.family



Все фамилии
Бобров
Голый
Коломоева
Петров
Прововед

На картинке то что выводит
...
Рейтинг: 0 / 0
Включение фамилий
    #39369434
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deniSinyukovвыводит только те фамилии у который стоят оценки.Хочу чтоб выводил все фамилииЗначит, в левом связывании таблица с фамилиями должна быть левой. Так что
Код: sql
1.
2.
3.
FROM      schoolboy
LEFT JOIN perfomance
LEFT JOIN opinion 
...
Рейтинг: 0 / 0
Включение фамилий
    #39369439
deniSinyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,результат не поменялся(
...
Рейтинг: 0 / 0
Включение фамилий
    #39369442
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deniSinyukov,

перенесите фильтр из ВЕРЕ в ОН

Код: sql
1.
2.
3.
4.
5.
6.
FROM      schoolboy

LEFT JOIN perfomance ON perfomance.id_schoolboy  = schoolboy.id 
AND DATE_FORMAT( date_delivery, '%M' ) = 'Август'

LEFT JOIN opinion ON opinion.id = perfomance.id_opinion
...
Рейтинг: 0 / 0
Включение фамилий
    #39369450
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcперенесите фильтр из ВЕРЕ в ОН

deniSinyukov , если во WHERE попытаться использовать условия на значение правой таблице, то LEFT JOIN немедленно превращается в INNER, поскольку условие отсеивает ВСЕ записи, для которых в правой таблице нет соответствующих записей.
...
Рейтинг: 0 / 0
Включение фамилий
    #39369451
deniSinyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,спасибо все сработало как надо) Подскажите в joine можно сколько угодно and писать?
...
Рейтинг: 0 / 0
Включение фамилий
    #39369452
deniSinyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,спасибо большое за помощь)
...
Рейтинг: 0 / 0
Включение фамилий
    #39369563
deniSinyukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc,Подскажи пожалуйста как совместить выборку масяц-предмет, делаю так не получается
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
.................................
from schoolboy
left  join  perfomance on perfomance.id_schoolboy  = schoolboy.id  AND DATE_FORMAT( date_delivery, '%M' ) = 'Ноябрь' #and perfomance.id_lesson = 1
left  join lesson on lesson.id = perfomance.id_lesson #and lesson.title = 'Математика'
left join class on schoolboy.id_class = class.id 
left  join opinion  on opinion.id = perfomance.id_opinion 
where   class.leter_class = 'B' and class.number_class = 5 
group by schoolboy.family;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Включение фамилий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]