gpt4 book ai didi

mysql - 返回产品 ID 和它们的数量,即使在 mysql 中没有它们的变体

转载 作者:行者123 更新时间:2023-11-29 01:52:13 25 4
gpt4 key购买 nike

我有 3 个表:

table_products - product_id, pname
variants - vid, vname
table_product_varients - product_id, vid

我想获取所有产品的产品变体计数,如果产品没有变体,则计数应为 0。

这是我的查询:

SELECT P.product_id, count(*) AS count
FROM table_product_varients AS PV
LEFT JOIN table_products AS P ON PV.product_id = P.product_id
GROUP BY P.product_id
ORDER BY P.product_id ASC

但这并不是提供没有变体的产品。

谁能帮我解决这个问题?

最佳答案

您应该将 table_products 表放在左侧。你也应该计算 PV.product_id

SELECT 
P.product_id,
count(PV.product_id) AS count
FROM table_products AS P
LEFT JOIN table_product_varients AS PV ON PV.product_id = P.product_id
GROUP BY P.product_id
ORDER BY P.product_id ASC;

注意:对于那些在 table_products_varients 表中没有相应条目的产品,您将获得 PV 的 NULL 值。产品编号。因此 COUNT(NULL) 实际上返回 0

关于 COUNT 的一些微妙之处:

SELECT COUNT(0);   Result: 1

SELECT COUNT(-1); Result: 1

SELECT COUNT(NULL); Result: 0

SELECT COUNT(71); Result: 1

SQL FIDDLE

关于mysql - 返回产品 ID 和它们的数量,即使在 mysql 中没有它们的变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com