Как сделать полное внешнее объединение в MySQL - PullRequest
1 голос
/ 18 ноября 2011

У меня есть две таблицы

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?

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011
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

на основе ответа альбина.

2 голосов
/ 18 ноября 2011

Это называется полным внешним соединением, но http://dev.mysql.com/doc/refman/5.0/en/join.html говорит, что оно не поддерживается в MySQL, но вы можете эмулировать с помощью UNION.

Поиск "Полное внешнее соединение" настр.

1 голос
/ 18 ноября 2011

Вы ищете внешнее соединение. MySQL не поддерживает это напрямую.

Тем не менее, вот блог, описывающий, как сделать full outer join в MySQL.

...