您好我可以使用内部联接从产品和价格表中检索结果:
SELECT product.name, price.code, price.price FROM product
INNER JOIN price ON product.productid=price.productid;
这里一切都很好。
但是我有另一个名为items的表,它有一个也在价格表中的代码列表(例如price.price)。
我想通过使用WHERE NOT IN来显示不在items表中的产品,所以我尝试了一个子查询:
SELECT product.name, price.code, price.price FROM product
INNER JOIN price ON product.productid=price.productid
WHERE code NOT IN (select code from items);
我的比较条件基于价格表和项目表中的代码。我得到一个空集,所以不知道我需要做些什么来纠正这个?
干杯
答案 0 :(得分:4)
不确定您的查询有什么问题,但使用null
谓词时IN
值存在一个问题,如果code
有任何可以为空的值,则条件为是错误的,因为价值是未知的,所以如果你试着改为left join
将是安全的:
SELECT product.name, price.code, price.price
FROM product
INNER JOIN price ON product.productid=price.productid
LEFT JOIN items ON items.code = price.code
WHERE items.code IS NULL