-1

如何使 NOT IN 与 JOIN 语句一起使用?下面是我的查询:

SELECT A.*
FROM products A 
LEFT OUTER JOIN productmeta B ON A.id=B.product_id 
WHERE(B.group_id IS NULL OR B.group_id=0) 
AND  (B.collection_id IS NULL OR B.collection_id=0)
AND   B.id NOT IN (SELECT collection_id FROM collections)
4

1 回答 1

2

我认为问题出在第三条。 NULL总是会导致它失败。但这很容易测试:

SELECT A.*
FROM products A LEFT OUTER JOIN 
     productmeta B 
     ON A.id=B.product_id 
WHERE (B.group_id IS NULL OR B.group_id=0) AND
      (B.collection_id IS NULL OR B.collection_id=0) AND
      (B.ID is NULL or B.id NOT IN (SELECT collection_id FROM collections));

尽管我没有更改它们,p但这将是一个更好的别名products和.pmproductmeta

于 2013-05-24T02:47:12.447 回答