代码之家  ›  专栏  ›  技术社区  ›  NoAlias

SQL语句问题-如何检索主键不作为外键存在于另一个表中的表的记录

  •  1
  • NoAlias  · 技术社区  · 14 年前

    我有一个表(TableA),其中主键作为外键存在于另一个表(TableB)上。我正在尝试编写一个SQL查询(我使用的是SQLServer2005),它将查找TableA中的所有记录,其中TableB中不存在作为外键的主键(我们称之为joining on TableAID)。我怀疑它将使用外部连接,但我一直在努力。有人能帮一个SQL新手吗?

    4 回复  |  直到 14 年前
        1
  •  4
  •   DCNYAM    14 年前
    SELECT A.*
    FROM TableA AS A
    LEFT JOIN TableB AS B ON (A.ID = B.TableAID)
    WHERE B.TableAID IS NULL
    
        2
  •  4
  •   JNK    14 年前

    您可以使用“不存在”

    SELECT columnlist
    FROM TableA
    WHERE NOT EXISTS(
       SELECT * FROM TableB
       WHERE TableB.column = TableA.column)
    
        3
  •  2
  •   Frank    14 年前

    SELECT A.*
    FROM TableA AS A
    WHERE NOT EXISTS ( SELECT 1
                       FROM TableB
                       WHERE TableA.ID = B.TableAID
                     )
    
        4
  •  0
  •   Achilles    14 年前
    Select * from TableA 
    where 
     TableA.TableAID not in (select TableB.TableAID from TableB)