【问题标题】:Find rows in one table that have no corresponding row in another table SQL查找一张表中没有另一张表中对应行的行 SQL
【发布时间】:2018-02-06 07:13:11
【问题描述】:

我试图从一个表中获取多个字段中不存在于另一个表中的某些记录。例如,如果我有表 1:

 Account    Animal
 123    dog
 456    cat
 789    bird

和表 2 类似:

Account Animal
123 cat
456 cat

我想要的决赛桌是:

Account Animal
123 dog

这是我尝试过的:

选择 一个。* 从 table1 左连接 table2 在 a.account=b.account 和 a.animal=b.animal 在哪里 b.animal 为空

【问题讨论】:

  • 这只鸟怎么了?您当前的查询有什么问题?
  • 我猜那只鸟还会在那里。
  • @ali.hash2 如果你不想要那只鸟,那就不要使用LEFT JOIN

标签: sql


【解决方案1】:

您似乎希望 帐户 匹配但动物不一样。

这表明内部连接和过滤:

select a.*
from table1 a join
     table2 b
     on a.account = b.account 
where a.animal <> b.animal ;

这适用于您的示例数据,但它确实假设没有重复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 2021-01-24
    • 2019-10-30
    • 2010-12-09
    • 2010-11-27
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多