Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Включение фамилий / 8 сообщений из 8, страница 1 из 1
17.12.2016, 22:59
    #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
17.12.2016, 23:10
    #39369434
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Включение фамилий
deniSinyukovвыводит только те фамилии у который стоят оценки.Хочу чтоб выводил все фамилииЗначит, в левом связывании таблица с фамилиями должна быть левой. Так что
Код: sql
1.
2.
3.
FROM      schoolboy
LEFT JOIN perfomance
LEFT JOIN opinion 
...
Рейтинг: 0 / 0
17.12.2016, 23:31
    #39369439
deniSinyukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Включение фамилий
Akina,результат не поменялся(
...
Рейтинг: 0 / 0
17.12.2016, 23:52
    #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
18.12.2016, 00:34
    #39369450
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Включение фамилий
javajdbcперенесите фильтр из ВЕРЕ в ОН

deniSinyukov , если во WHERE попытаться использовать условия на значение правой таблице, то LEFT JOIN немедленно превращается в INNER, поскольку условие отсеивает ВСЕ записи, для которых в правой таблице нет соответствующих записей.
...
Рейтинг: 0 / 0
18.12.2016, 00:37
    #39369451
deniSinyukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Включение фамилий
javajdbc,спасибо все сработало как надо) Подскажите в joine можно сколько угодно and писать?
...
Рейтинг: 0 / 0
18.12.2016, 00:38
    #39369452
deniSinyukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Включение фамилий
Akina,спасибо большое за помощь)
...
Рейтинг: 0 / 0
18.12.2016, 14:11
    #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
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Включение фамилий / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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