我有2个mysql表a和b。我需要使用通用列“ ID”显示a中不在b中的所有记录。通常,这很简单,但是我的问题是:我需要在表b上放置一个where子句,因为我对所有不匹配的记录都只对满足表2 where子句条件的记录感兴趣:
SELECT a.ID, a.Description
FROM a
LEFT JOIN b ON a.ID = b.ID
WHERE a.Inactive = 0
AND b.Room = '101'
AND b.ID Is Null
这什么也不会返回。但是,如果我删除该AND b.Room = '101'
零件,它将显示预期的结果。但我需要这种条件,因为我只需要特定于“房间”的不匹配记录,而不需要所有不匹配的记录
将涉及表的条件b
从WHERE移到ON子句:
SELECT a.ID, a.Description
FROM a
LEFT JOIN b ON a.ID = b.ID AND b.Room = '101'
WHERE a.Inactive = 0
AND b.ID Is Null
它将查找a在b中不匹配的行(id匹配且房间号= 101)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句