3

我编写了一个查询来从表 A 中获取一个代码,该代码不在表 B 中的相同 ID。我已经在查询中对 ID 进行了硬编码,我想知道如何获得所有 ID 的所需输出,而不仅仅是 539。下面是查询

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 回答