我有两个名为listingslistings_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/

10-12 02:49