SQL空产品

SQL空产品,sql,not-exists,Sql,Not Exists,我必须让它显示有多少类别是可用的,目前没有任何产品。不确定我做错了什么,因为我已经移动了一些东西,仍然得到682行的结果,而应该是0行 SELECT Quantity, ProductName, CategoryID FROM Products, OrderItems WHERE NOT EXISTS ( SELECT Quantity FROM OrderItems WHERE Quantity IS NULL )

我必须让它显示有多少类别是可用的,目前没有任何产品。不确定我做错了什么,因为我已经移动了一些东西,仍然得到682行的结果,而应该是0行

SELECT 
    Quantity, 
    ProductName, 
    CategoryID

FROM 
    Products,
    OrderItems 

WHERE NOT EXISTS (
    SELECT Quantity
    FROM OrderItems
    WHERE Quantity IS NULL
)

被告知需要在其中使用“NOT EXIST”。

您需要表之间的连接条件。第一个提示:切勿在
FROM
子句中使用逗号。始终使用正确、明确的
JOIN
语法

我想你想要这样的东西:

SELECT oi.Quantity, p.ProductName, p.CategoryID
FROM Products p LEFT JOIN
     OrderItems oi
     ON oi.ProductId = p.ProductId
WHERE oi.quantity IS NULL;

确切的语法有点猜测,因为您没有提供示例数据。

您需要将从中选择的两个表连接起来。。。否则结果将不是您所期望的。请提供示例数据、所需结果以及您正在使用的数据库的标记。我不同意“从不使用逗号”的说法。相反,我认为,如果一个人知道自己在做什么,那么就可以使用逗号…@Gordon是的,就像那样,但有人告诉他,不存在是必须的used@PeterAbolins . . . 联接类型应始终显式声明。如果没有,那么写查询的人(1)可能不知道他们在做什么,(2)不关心其他人是否能理解他们的意图。