【问题标题】:MYSQL QUERY for Products and Variants产品和变体的 MYSQL 查询
【发布时间】:2011-08-10 19:58:45
【问题描述】:

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

我们称之为 cart_variants

| variantid | productid | avail |
| 5677      |   1310    |   0   |
| 5399      |   1310    |   2   |
| 5228      |   1223    |   0   |
| 5133      |   1223    |   0   |

我需要返回所有变体数量为零的 productid。产品 ID 可以有任意数量的变体。在上面的示例中,查询只会返回 productid 1223。

我很确定这不是一个非常复杂的查询,但它确实让我很吃惊。 尽可能接近的是:

SELECT productid, SUM(avail)as qty FROM 'cart_variants' GROUP BY productid

这给了我所有产品及其数量的列表,但我不知道如何将其放入临时表并使用 qty = 0 查询 productid。

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

感谢任何帮助。

【问题讨论】:

    标签: mysql temp-tables


    【解决方案1】:

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

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

    【讨论】:

    • 我添加了一个 WHERE 子句来检查产品表,以确保产品线尚未被禁用并且它的工作原理就像一个魅力。非常感谢。我怀疑答案会比我试图做的更简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2011-11-27
    相关资源
    最近更新 更多