两表联合查询 —— 查询副表中主表字段的次数

知识储备
IFNULL(expr1,expr2)
如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。

主表 ATable
aid - aname - atime
1    1    1
2    2    2
3    3    3
4    4    4
5    5    5

副表 BTable
bid - aid
1    1
2    1
3    1
4    2
5    2
6    3
7    1
8    2

为了显示在 B 表中,A 表主键出现的频次,源码如下:
SELECT
    a.*, ifnull(count(b.aid), 0) btimes
FROM
    ATable a
LEFT JOIN Btable b ON b.aid = a.aid
GROUP BY
    b.aid

查询结果如下:
aid - aname - atime - btimes
4    4    4    0
1    1    1    4
2    2    2    3
3    3    3    1


虽然,结果能够正常显示,但是,处理方式还是不规范的,推荐的还是子查询,适用更优。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值