我有两个名为listings
和listings_queue
的表。它们的结构相同。想法是将记录放入队列,对它们进行处理,然后将它们移至listings
。
我想运行一个查询,该查询提取listings
中存在的任何记录,但listings_queue
中不存在。不存在的条件是它没有与listings_queue
中的任何字段匹配的mls_listing_id和mls_id字段。
用简单的英语来说,“请给我listings
中没有在listings_queue
中具有相同mls_id和mls_listing_id的记录的任何记录。
我试着做where子句,但无法使其正常工作。
最佳答案
您可以使用where
子句执行此操作:
select l.*
from listings l
where not exists (select 1
from listings_queue lq
where lq.mis_id = l.mis_id and lq.mis_listing_id = l.mis_listing_id
);
您也可以将其作为左外部联接:
select l.*
from listings l left outer join
listings_queue lq
on lq.mis_id = l.mis_id and lq.mis_listing_id = l.mis_listing_id
where lq.mis_id is null;
如果
listings_queue
表具有多个匹配项,则可能会产生重复项。关于mysql - 如何执行左连接但有两个子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22084803/