This question already has an answer here:
What's different between INTERSECT and JOIN?
(1个答案)
2年前关闭。
我知道,INNER JOIN用于引用的键,而INTERSECT不是。但是afaik在某些情况下,两者都可以做相同的事情。那么,以下两个表达式之间是否存在差异(性能或其他方面)?如果有,哪一个更好?
表达式1:
表达式2:
(1个答案)
2年前关闭。
我知道,INNER JOIN用于引用的键,而INTERSECT不是。但是afaik在某些情况下,两者都可以做相同的事情。那么,以下两个表达式之间是否存在差异(性能或其他方面)?如果有,哪一个更好?
表达式1:
SELECT id FROM customers
INNER JOIN orders ON customers.id = orders.customerID;
表达式2:
SELECT id FROM customers
INTERSECT
SELECT customerID FROM orders
最佳答案
即使在您的情况下,它们也有很大不同。
如果INNER JOIN
在任一表中重复,则id
将返回重复项。 INTERSECT
删除重复项。 INNER JOIN
将永远不会返回NULL
,但是INTERSECT
将返回NULL
。
两者有很大的不同。一个运算符通常匹配一组有限的列,并且可以在任一表中返回零行或更多行。另一个是基于集合的运算符,它比较两个集合之间的完整行,并且永远不会返回比较小表中更多的行。
关于sql - INTERSECT和INNER JOIN之间有根本区别吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51775718/
10-12 19:59