我想知道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
除了性能差异外,它们的含义是否有差异?
答案 0 :(得分:0)
这些查询完全不同。首先,您应该学习使用正确的显式JOIN
语法。
如果您运行它们-即使在测试表上-也会很快发现差异。
例如,union
查询将删除重复项。 or
查询没有。
or
查询执行表的笛卡尔积。因此,如果任何表为空(例如B1
或B2
),则不会返回任何行。 union
将返回其他两个表中的值。