4

Let's say I have two identical tables, A and B, with the row "x".

I want to select all elements in A, where the value of x in A is not in any value of x of B.

How do I do that?

4

5 に答える 5

4

次のようなこともできます。

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

(質問の非常に簡単な例では、NOT EXISTS/NOT INアプローチがおそらく望ましいですが、実際のクエリはより複雑です。これは検討したいオプションです。一致しているが、一致していない場所も知りたい)

于 2012-05-24T09:22:39.930 に答える
2
select *
from TableA
except
select *
from TableB
于 2012-05-24T09:21:25.773 に答える
2

何が必要なのか理解に苦しむ。
とにかくこれを試してください:

SELECT * FROM tableA 
WHERE x not IN (SELECT x FROM tableB)
于 2012-05-24T09:18:38.830 に答える
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 に答える