我正在尝试列出所有没有销售的产品。我真的很接近,但是我试图使用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/

10-15 08:15