SQL中的接连

问题:tb_function表中有字段 id_fun/title/deleted字段
tb_detail表中有字段 id_detail/id_fun/deleted字段
一个id_fun对应多个id_detail
要得到以下结果
id_fun  title   count(id_detail)
   1      x           0
   2     xxx          2
  …     …          
我写的SQL如下:
SELECT a. * , COUNT( b.id_detail ) AS num
FROM tb_function AS a
LEFT JOIN tb_use_detail AS b ON a.id_fun = b.id_fun
WHERE a.deleted=0
AND b.deleted=0
GROUP BY b.id_fun
执行结果中不能查找到count(id_detail)为0的结果
SQL改为
SELECT a. * , COUNT( b.id_detail ) AS num
FROM tb_function AS a
LEFT JOIN tb_use_detail AS b ON a.id_fun = b.id_fun
WHERE a.deleted=0
GROUP BY b.id_fun
结果就有count(id_detail)为0的结果

解决:
SELECT a. * , c.count
FROM tb_function AS a
LEFT JOIN (
SELECT b.id_fun, b.deleted, COUNT( b.id_detail ) count
FROM tb_use_detail AS b
WHERE b.deleted =0
GROUP BY b.id_fun
) AS c ON a.id_fun = c.id_fun
WHERE a.deleted =0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值