回答

收藏

Count()左连接问题

技术问答 技术问答 199 人阅读 | 0 人回复 | 2023-09-14

我的查询有问题。查询显示了商店列表和相关产品的数量。我已经玩了很长时间的左连接,但没用。这些表有以下结构:8 l4 Y1 @0 M# j+ l
商店包含表列:id,name: k7 e% [, l- W( u0 S4 c- G
产品含表列:id,name,status,shop3 f( j, t% ], `/ f; p6 N( e6 Z5 y
查询如下:
  a3 P* i/ }, x, iselect s.name  p.name  count(p.id) from   Product as p        left join Shop as s on p.shop=s.idwhere  p.status  '8796107276379'group by        s.id我没有去有0件商品的商店。我该怎么办?3 I- t% G* v; r0 {
基础数据库是MySQL。
3 L+ h0 _- v1 c! _4 m0 S- q谢谢!马耳他
# e+ @5 S# b+ r% R& z  T                                                                8 p+ L& `0 [6 h3 T. C$ A! A
    解决方案:                                                                8 [6 B. R3 T6 q4 B6 c% `2 P
                                                                你需要在左边购物,因为右边可能没有数据,在这种情况下PRODUCT。
/ |. N  K2 l& H  W0 D! _6 i  U不仅如此,你还需要WHERE条件作为LEFT-JOIN5 A' ^3 e1 @# L/ C- Z6 {6 D
ON这样,它就可以在状态条件下添加产品,即使不需要状态,产品也可以打折(在保持销售状态的同时)。
( H1 C% }4 i8 B' E: {( b! Cselect 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
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则