gpt4 book ai didi

sql - Count() 和 left join 问题

转载 作者:可可西里 更新时间:2023-11-01 06:27:39 25 4
gpt4 key购买 nike

我在查询时遇到问题,该查询显示商店列表以及与之关联的产品数量。我一直在玩左连接等很长一段时间,但无济于事。这些表具有以下结构:

Shops 表包含列:idname

产品表包含列:idnamestatusshop

查询如下:

select s.name
, p.name
, count(p.id)
from Product as p
left join Shop as s on p.shop=s.id
where p.status <> '8796107276379'
group by
s.id

我没有得到有 0 个产品的商店。请问我怎样才能做到这一点?

底层数据库是MySQL。

谢谢!Krt_马耳他

最佳答案

您需要在左侧使用 SHOP,因为右侧可能没有数据,在本例中为 PRODUCT。

不仅如此,您还需要 WHERE 条件作为 LEFT-JOIN ON 条件,这样它就可以根据状态条件加入产品,并且即使不需要状态也可以只对产品打折(同时保留商店)。

select s.name
, p.name
, count(p.id)
from Shop as s
left join Product as p on p.shop=s.id AND p.status <> '8796107276379'
group by
s.id, p.name

关于sql - Count() 和 left join 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983544/

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