Count()和左连接问题

Krt*_*lta 9 mysql sql count left-join

我的查询有问题,该查询显示商店列表,其中包含与之关联的产品数量.我一直在玩左连接等一段时间但是无济于事.表格具有以下结构:

包含列的商店表:id,name

包含列的产品表:id,name,status,shop

查询如下:

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
Run Code Online (Sandbox Code Playgroud)

我找不到有0件商品的商店.我怎么能实现这个目标呢?

底层数据库是MySQL.

谢谢!Krt_Malta

Ric*_*iwi 22

您需要在左侧进行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
Run Code Online (Sandbox Code Playgroud)