4

列のあるtableAと、id列のある table B があるとしA_idます。A_idの外部キーですid。ここで、B に外部キー リンクがある A からすべての ID を取得したい場合、次のことができます。

SELECT id FROM A JOIN B ON id = A_id

ただし、B がリンクしていないA からすべての ID を選択するにはどうすればよいですか? (すべての ID を選択せず​​に、そこから上記のサブセットを減算します)

4

2 に答える 2

3
SELECT  id
FROM    a
WHERE   id NOT IN
        (
        SELECT  a_id
        FROM    b
        )

これはアンチ結合を使用します。 からの各レコードに対して、 ( のインデックスを使用して)レコードaを検索し、見つからない場合はレコードを返します。bidb.a_id

于 2012-06-07T15:28:36.237 に答える
2
SELECT A.id FROM
A LEFT JOIN B ON A.id = B.A_id
WHERE B.A_id IS NULL;
于 2012-06-07T15:29:52.603 に答える