【问题标题】:need to select the data that does not exist in another table需要选择另一个表中不存在的数据
【发布时间】:2015-03-28 20:08:11
【问题描述】:

有 2 张桌子。表一的 id 在表 2 中有多个条目。我需要选择一个没有特定记录的 id(在表 2 中的这些多条记录中,不应存在一行)。请告诉我该怎么做。

例如:

Table 1       Table 2
A             A 2
B             A 3
C             B 2
              B 3
              C 3

现在我需要从表 1 中选择与表 2 中包含值 2 的行无关的行。(即应该选择 C)

【问题讨论】:

    标签: mysql sql-server sql-server-2008 exists


    【解决方案1】:

    以下 sql 排除表 1 中的行,其中表 2 中的对应行具有值为 2 的列(您要排除的值)

    SELECT t1.col1
    FROM Table1 t1
    WHERE NOT EXISTS (SELECT t2.col2  From Table2 t2 WHERE t2.col1 = t1.col1 and t2.col2 =2)
    

    【讨论】:

      【解决方案2】:

      你可以试试这样的

      select t1.*
      from table1 as t1
      left join table2 as t2 on (t1.col1 = t2.col1)
      where t2.col2 is null
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-14
        • 2011-02-27
        • 1970-01-01
        • 2012-07-23
        • 2014-05-27
        • 2012-06-23
        相关资源
        最近更新 更多