SELECT calendar.*, subjects.id, subjects.subject_name, teachers_users.full_name AS teach_name
FROM calendar, subjects, teachers_users, classes
WHERE calendar.subject = subjects.id
AND subjects.subject_teacher = teachers_users.id
AND calendar.class = classes.id
AND classes.id = '1'
GROUP BY subjects.id
До обновления со старой версии MySQL все группировалось как мне нужно, но теперь новая версия этого не позволяет.
В примере твоей таблицы делалось просто, если группировать по 2 колонке, то получалось так:Мускул так не умеет и не прощает ошибок в strict mode. Можно конечно отключить его и пользоваться как обычно. Но как по мне лучше писать правильные запросы =)
1 | Алена | Вася
2 | Катя | Петр
3 | Петр | Алена
SELECT
calendar.*,
subjects.id,
subjects.subject_name,
teachers_users.full_name AS teach_name
FROM calendar
JOIN subjects ON calendar.subject = subjects.id
JOIN teachers_users ON subjects.subject_teacher = teachers_users.id
WHERE calendar.class = 1;
SELECT
subjects.id,
subjects.subject_name,
teachers_users.full_name AS teach_name
FROM calendar
JOIN subjects ON calendar.subject = subjects.id
JOIN teachers_users ON subjects.subject_teacher = teachers_users.id
WHERE calendar.class = 1
GROUP BY subjects.id