我希望我可以通过我想弄清楚的查询得到一些帮助。我们的在线商店需要知道产品的所有变体何时数量为零,因此我们可以从客户视图中禁用该产品。我正在使用的表只是变量表。
我们称之为cart_variants
| variantid | productid | avail |
| 5677 | 1310 | 0 |
| 5399 | 1310 | 2 |
| 5228 | 1223 | 0 |
| 5133 | 1223 | 0 |
我需要返回所有不同数量都为零的产品。产品ID可以包含任何数量的变体。在上面的示例中,查询只返回productid 1223。
我很确定这不是一个非常复杂的查询,但它肯定会踢我的屁股。 我能够尽可能接近:
SELECT productid, SUM(avail)as qty FROM 'cart_variants' GROUP BY productid
这给了我所有产品及其qtys的列表,但是我无法弄清楚如何将它放入临时表并使用qty = 0查询productid。
使用临时表和选择查询的大多数示例都不是很清楚。我尝试了几个化身,但没有一个能够完成。
感谢任何帮助。
答案 0 :(得分:1)
假设您永远不会有负avail
值,您实际上只需要在查询中应用HAVING
子句:
SELECT c.productid
FROM cart_variants c
GROUP BY c.productid
HAVING SUM(c.avail) = 0