В чем функциональная разница между UNION и OR? - PullRequest
0 голосов
/ 05 апреля 2019

Интересно, есть ли разница в операторах UNION и OR в WHERE?

Использование оператора UNION с двумя разными таблицами:

SELECT A.col
FROM A, B1
WHERE A.col = B1.col
UNION
SELECT A.col
FROM A, B2
WHERE A.col = B2.col

Использование или в WHERE выражение:

SELECT A.col
FROM A, B1, B2
WHERE A.col=B1.col or A.col=B2.col

Кроме разницы в производительности, есть ли разница в их значениях?

1 Ответ

0 голосов
/ 05 апреля 2019

Эти запросы не похожи друг на друга.Во-первых, вы должны научиться использовать правильный явный синтаксис JOIN.

Если вы запустите их - даже на тестовых таблицах - вы быстро найдете различия.

Например, union запрос удаляет дубликаты.Запрос or не выполняется.

Запрос or создает декартово произведение таблиц.Таким образом, если какая-либо из таблиц пуста (например, B1 или B2), то строки не возвращаются.union вернет значения из двух других таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...