尝试使用两个联接来在sql中查找不常见的数据

时间:2015-04-11 20:22:28

标签: mysql sql join left-join inner-join

我有三张桌子。表1包含所有可用产品的列表。另外两张表包含在商店出售的产品。我试图找出如何找到哪些产品在两家商店都没有销售。

我可以通过以下方式找到一家商店:

  

SELECT DISTINCT Table1.pname

     

FROM Table1

     

LEFT JOIN Store1

     

ON Table1.pname = Store1.pname

     

WHERE Store1.pname IS NULL

当我尝试添加另一个联接以找出尚未售出的内容时,问题就出现了。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

尝试以下查询

SELECT DISTINCT Table1.pname

FROM Table1

LEFT JOIN Store1

ON Table1.pname = Store1.pname
WHERE Store1.pname IS NULL

UNION 

SELECT DISTINCT Table1.pname

FROM Table1
LEFT JOIN Store2  
ON Table1.pname = Store2.pname
WHERE Store2.pname IS NULL