4

假设我有两个相同的表,A 和 B,行“x”。

我想选择A中的所有元素,其中A中x的值不在B的任何x值中。

我怎么做?

4

5 回答 5

4

你也可以这样做:

SELECT * FROM TableA
LEFT JOIN TableB on TableA.X = TableB.X
WHERE TableB.X IS NULL

(对于您问题中非常简单的示例,NOT EXISTS/NOT IN方法可能更可取,但是您的实际查询是否更复杂,这是您可能要考虑的选项;例如,如果您想要来自 TableB 的 som 信息一场比赛,但也想知道哪里没有比赛)

于 2012-05-24T09:22:39.930 回答
2

我很难理解你需要什么。
无论如何试试这个:

SELECT * FROM tableA 
WHERE x not IN (SELECT x FROM tableB)
于 2012-05-24T09:18:38.830 回答
2
select *
from TableA
except
select *
from TableB
于 2012-05-24T09:21:25.773 回答
1

最快的是左连接

SELECT * FROM A LEFT JOIN B ON A.X = B.X WHERE B.X IS NULL
于 2012-05-24T09:27:10.253 回答
1

用它 :

select * from a where x not in (select x from b)
于 2012-05-24T11:31:33.520 回答