У меня есть две таблицы
t1(id,c) values = (1,aa),(2,bb),(3,cc) t2(id,c) values = (2,bbb),(3,ccc),(4,ddd)
Мне нужен запрос, который выдаст:
1,aa,null,null 2,bb,2,bbb 3,cc,3,ccc null,null,4,ddd
Можно ли это сделать в MySql?
select t1.id,t1.c, t2.id, t2.c FROM t1 LEFT JOIN t2 on t1.id=t2.id UNION select t1.id,t1.c, t2.id, t2.c FROM t2 LEFT JOIN t1 on t1.id=t2.id
на основе ответа альбина.
Это называется полным внешним соединением, но http://dev.mysql.com/doc/refman/5.0/en/join.html говорит, что оно не поддерживается в MySQL, но вы можете эмулировать с помощью UNION.
Поиск "Полное внешнее соединение" настр.
Вы ищете внешнее соединение. MySQL не поддерживает это напрямую.
Тем не менее, вот блог, описывающий, как сделать full outer join в MySQL.
full outer join