SQL查询在列中按空值计算分组的连接表

时间:2012-12-12 13:07:18

标签: php mysql sql database join

我有3个表productsstock以及purchases

Puchases的{​​{1}} primary key

我的purchaseID表格中有products primary key,然后列有产品详情。

我的productID表格stock primary key framenumber foreign keyproductID foriegn key。< / p>

并非所有产品都有库存。

我想purchaseID joinprodcuts的库存表,并在最后有一行计算productID中空值的数量列,表示我有多少库存。

我已经尝试了purchaseID的加载,但似乎总是在queries表格中或stock未提交正确加入的条目总数。

我试过的一些事情

subqueries

只是给我一个按产品ID分组的库存中所有物品的数量,并没有加入所有产品

模式

SELECT * , COUNT( * ) AS Count
FROM Products
LEFT JOIN Stock ON Products.productID = Stock.productID
WHERE Stock.OrderID IS NULL AND Stock.framenumber IS NOT NULL
GROUP BY Products.productID

1 个答案:

答案 0 :(得分:2)

SELECT Products.productID , SUM( 
case 
   when  (Stock.OrderID IS NULL AND Stock.framenumber IS NOT NULL) 
      then 1 
      else 0 
end case
) AS Count
FROM Products
LEFT JOIN Stock ON Products.productID = Stock.productID
GROUP BY Products.productID
相关问题