mysql 左表为null_sql left join count 左表为空表的时候出现空行

sql left join count 左表为空表的时候出现空行

mysql> CREATE TABLE `test`.`tab1` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`name` VARCHAR( 20 ) NOT NULL ,

`del` INT NOT NULL

) ENGINE = MYISAM ;

mysql> CREATE TABLE `test`.`tab2` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`tid` INT NOT NULL ,

`val` INT NOT NULL ,

`del` INT NOT NULL

) ENGINE = MYISAM ;

mysql> select tab1.*, count(tab2.val) from tab1 left join tab2 on tab2.tid = tab1.id;

+----+------+-----+-----------------+

| id | name | del | count(tab2.val) |

+----+------+-----+-----------------+

| NULL | NULL | NULL | 0 |

+----+------+-----+-----------------+

1 row in set (0.00 sec)

哎,有一个空行,怎么办啊,count返回了个0,难道别人的系统里面,左表为空的时候都会显示出来一行吗。我不相信,最后想到了办法。哈哈。。。

加 having id is not null

mysql> select tab1.*, count(tab2.val) from tab1 left join tab2 on tab2.tid = tab1.id having id is not null;

Empty set (0.01 sec)

搞定。呵呵。经验分享给大家,希望更多人受用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值