У меня есть три таблицыПрисоединяйтесь три таблицы в MySQL
Таблица 1
student_id | id | status
--------------------------------
10 | 100 | 1
11 | 100 | 1
12 | 100 | 1
13 | 100 | 1
10 | 200 | 1
11 | 200 | 1
12 | 200 | 1
13 | 200 | 1
Таблица 2
date | status
------------------------
2013-12-28 | cd
2013-12-29 | wd
2013-12-30 | cd
Таблица 3
date | id
------------------------
2013-12-28 | 100
2013-12-30 | 200
мне нужно нулевые значения для всех студенты от 2013-12-29
sid | дата | статус | дата | статус ------------------------------------------------ -------
10 | 2013-12-28 | 1 | 2013-12-28 | cd
11 | 2013-12-28 | 1 | 2013-12-28 | cd
12 | 2013-12-28 | 1 | 2013-12-28 | cd
13 | 2013-12-28 | 1 | 2013-12-28 | cd
10 | null | null | 2013-12-29 | wd
11 | null | null | 2013-12-29 | wd
12 | null | null | 2013-12-29 | wd
13 | null | null | 2013-12-29 | wd
10 | 2013-12-30 | 1 | 2013-12-30 | cd
11 | 2013-12-30 | 1 | 2013-12-30 | cd
12 | 2013-12-30 | 1 | 2013-12-30 | cd
13 | 2013-12-30 | 1 | 2013-12-30 | cd
Я попытался с Join two tables in mysql?
И я использовал следующий запрос
SELECT distinct x.student_id, table1.status, x.date bdate, table2.status bstatus
FROM
(SELECT DISTINCT table1.student_id, table2.date
FROM table1
CROSS JOIN table2) x
LEFT JOIN table1 ON x.sid=table1.sid
left join table3 on table1.id=table3.id and x.date=table3.date
LEFT JOIN table2 ON x.date=table2.date ORDER BY bdate, student_id
но я did'nt получить нулевые значения для состояния 3-я колонка.
Так что ваш вопрос? – zerkms
я не получаю нулевые значения для моего запроса SELECT DISTINCT x.student_id, table1.status, x.date bdate, table2.status bstatus ОТ (SELECT DISTINCT table1.student_id, table2.date ОТ table1 CROSS JOIN таблица2) х LEFT JOIN table1 ON x.sid = table1.sid влево присоединиться на Таблицу 3 table1.id = table3.id и x.date = table3.date LEFT JOIN table2 ON x.date = table2.date ORDER BY bdate, student_id – Madusudhanan
Как добавить, что в комментарии кто-нибудь поможет? Добавьте его к своему вопросу. – Daedalus