3

同じIDのテーブルBにないコードをテーブルAから取得するクエリを作成しました。クエリでIDをハードコーディングしましたが、539だけではなく、すべてのIDに対して目的の出力を取得する方法を知りたいです。以下はクエリです

SELECT
    a.code
FROM
    A
WHERE
    a.code NOT IN(
        SELECT
            b.code
        FROM
            B b
        WHERE
           b.ID='539'
        AND b.status <> 'D')
AND 
     (a.id='539')
AND 
     (a.status <> 'D')
4

2 に答える 2

2

左結合を使用してテーブルを結合し、テーブルBに対応するレコードがないレコードのみを選択します

SELECT a.code
FROM A
LEFT JOIN B
  ON a.ID = b.ID
  AND a.code = b.code
  AND b.status <> 'D'
WHERE a.status <> 'D'
AND b.code IS NULL
于 2012-10-09T13:40:22.843 に答える
0

クエリしているIDを削除するだけで、すべてを取得できるはずです。

SELECT
    a.code
FROM
    A
WHERE
    a.code NOT IN(
        SELECT
        b.code
        FROM
        B b
        AND b.status <> 'D')
and AND a.status <> 'D'
于 2012-10-09T13:37:09.373 に答える