更简单的方法来获得2个mySQL表的差异?

时间:2011-02-16 16:57:10

标签: sql mysql

我有两个相同字段的表,35个相同的字段。

我知道我可以使用

找出其中一行中不存在哪些行
SELECT first.a, first.b, first.c FROM first LEFT JOIN second USING(a,b,c) 
WHERE second.a IS NULL

我想知道的是,考虑到表格列和列顺序相同,是否有更简单的方法来写这个?

2 个答案:

答案 0 :(得分:3)

另一种选择是:

SELECT DISTINCT a, b, c FROM first 
WHERE (a, b, c) NOT IN
(SELECT a, b, c FROM second)

这不是一件简单的事情,但它可能正是你所寻找的。 此外,您的版本应该更有效。

答案 1 :(得分:2)

不幸的是,不是在MySQL中。

在大多数现代DBMS中,您可以使用MINUS运算符:

SELECT col1, col2, col3
FROM tablea
MINUS
SELECT col1, col2, col3
FROM tableb

但是MySQL还不支持MINUS运算符。