Прежде всего, этот предмет для меня как любопытство.
Я писал код для служебной библиотеки и добавлял методы для запуска различных типов операторов SQL-соединений.Все хорошо, но в какой-то момент я наткнулся на неясное предложение UNION JOIN
, включенное в спецификацию SQL-92 (стр. 179).
Я не знаю, насколько это может быть полезно (я никогда не использовал его), и оно реализовано (AFAIK) только в HyperSQL.
Для справки, вот как это работает.Если у нас есть две таблицы T и U с любым количеством столбцов / строк:
====== T ===== === U ===
a b c d e
---- ---- ---- ---- ----
1 2 3 10 11
4 5 6 12 13
Тогда:
select * from T union join U
Производит (без определенного порядка строк):
a b c d e
---- ---- ---- ---- ----
1 2 3 null null
4 5 6 null null
null null null 10 11
null null null 12 13
В любом случае, я хотел знать, какие базы данных действительно поддерживают это, или если вы видели это в дикой природе.
Я думал также спросить, для чего это может быть полезно, но я неЯ не хочу, чтобы этот вопрос был закрыт как «в первую очередь основанный на мнении».