我正在尝试列出所有没有销售的产品。我真的很接近,但是我试图使用NOT EXISTS语句来显示Product表中的所有ProductID,而不是Orderline表中的所有;因此没有销售。我的代码如下:
SELECT product.productid
FROM product
JOIN orderline ON product.productid = orderline.productid
WHERE NOT EXISTS (
SELECT orderline.productid
FROM orderline
)
ORDER BY productid
最佳答案
您只需执行LEFT JOIN
即可避免Subselect:
SELECT product.productid
FROM product
LEFT JOIN orderline USING (productid)
WHERE orderline.productid IS NULL
ORDER BY product.productid
即使在
LEFT JOIN
中没有JOIN伙伴,product
也会列出orderline
中的所有行。在这种情况下,orderline
中的所有列都具有NULL
值。这些是您想要的结果行。关于mysql - SQL-没有销售的产品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23205842/