关于两表统计数分组的SQL语句

来源:3-1 如何实现分组选择数据

joyoes

2016-03-24 22:17

http://img.mukewang.com/56f3f6ce0001875d07610356.jpg

其写的SQL语句是这样的:SELECT `a表`.`name` AS 村社,COUNT(`a表`.id) AS 统计结果 FROM a表 LEFT JOIN `b表` ON `a表`.card=`b表`.card WHERE `b表`.card is not NULL GROUP BY `a表`.`name`右边是我统计出来的结果集,但我想把在a表的字段card在b表中没有的记录都统计出来,我却怎么也做不到啊,请老师帮忙看一下是怎么写的嘛!

比如:

一  1

二  1

三  0

四  0

我试了很多种方法都没试出来,请老师指导一下,谢谢


写回答 关注

3回答

  • SevenKey
    2016-03-28 13:08:34
    已采纳

    SELECT `a表`.`name` AS 村社,COUNT(`a表`.id) AS 统计结果 FROM a表 LEFT JOIN `b表` ON `a表`.card=`b表`.card WHERE GROUP BY `a表`.`name`

    joyoes

    老师,我是这样写的:SELECT `a表`.`name` AS 村社,COUNT(`a表`.id) AS 统计结果 FROM a表 LEFT JOIN `b表` ON `a表`.card=`b表`.card GROUP BY `a表`.`name` 但显示出来的效果却是这样的,没有数据的统计结果为1,这是怎么回事啊?

    2016-04-05 22:46:56

    共 3 条回复 >

  • joyoes
    2016-04-05 23:37:27

    老师,谢谢,我知道怎么做了,是我的统计字段,给弄错了的原因

  • joyoes
    2016-04-05 22:49:11

    http://img.mukewang.com/5703d0560001a70410550430.jpg

    老师,我是这样写的:SELECT `a表`.`name` AS 村社,COUNT(`a表`.id) AS 统计结果 FROM a表 LEFT JOIN `b表` ON `a表`.card=`b表`.card GROUP BY `a表`.`name`

    但显示出来的效果却是这样的,没有数据的统计结果为1,这是怎么回事啊?

MySQL开发技巧(一)

DBA和开发人员都必备的技能,SQL技巧一个好程序员必备技能

148779 学习 · 123 问题

查看课程

相似问题