MySQL: full outer join (некоторые проблемы)

Модератор: Модераторы разделов

Аватара пользователя
S7a1k3r
Сообщения: 159
Статус: Белгородский LUG
ОС: Arch Linux

MySQL: full outer join

Сообщение S7a1k3r »

Доброго времени суток.
Сначала суть вопроса

есть две таблицы

Код: Выделить всё

tbl_1

id  |data_1|  data_2
1   |  1   |    3
2   |  2   |    4

и

Код: Выделить всё

tbl_2

id |data_1 | data_3
1  |   2   |   3
2  |   3   |   6


хотелось бы на базе этих двух таблиц получить следующее

Код: Выделить всё

data_1 | data_2| data_3
  1    |   3   |  NULL
  2    |   4   |   3
  3    |  NULL |   6


используя full outer join, (его эмуляция)
такого вида

Код: Выделить всё

select a.*, o.* from mutex
   left outer join `tbl_1` as a on i = 0
   left outer join `tbl_2` as o on i = 1 or a.data_1 = o.data_1
   left outer join `tbl_1` as a2 on i = 1 and a2.data_1 = o.data_1
where o.data_1 is null or a2.data_1 is null

где таблица mutex это:

Код: Выделить всё

create table mutex(
    i int not null primary key
);
insert into mutex(i) values (0), (1);

mutex
i
0
1


источник: http://www.xaprb.com/blog/2006/05/26/how-t...-join-in-mysql/

можно получить таблицу вида

Код: Выделить всё

data_1| data_2 |data_1|data_3
  1   |   3    | NULL | NULL
  2   |   4    |  2   |  3
NULL  |  NULL  |  3   |  6


собственно вопрос:
возможно ли такое проделать? т.е. сделать стольбец data_1 общим для обеих таблиц
Спасибо сказали: