产品和变体的MYSQL QUERY

时间:2011-08-10 19:58:46

标签: mysql temp-tables

我希望我可以通过我想弄清楚的查询得到一些帮助。我们的在线商店需要知道产品的所有变体何时数量为零,因此我们可以从客户视图中禁用该产品。我正在使用的表只是变量表。

我们称之为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。

使用临时表和选择查询的大多数示例都不是很清楚。我尝试了几个化身,但没有一个能够完成。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

假设您永远不会有负avail值,您实际上只需要在查询中应用HAVING子句:

SELECT c.productid
    FROM cart_variants c
    GROUP BY c.productid
    HAVING SUM(c.avail) = 0