left join的一种用法

前几天一段代码出现了性能问题,其实数据量不是很大,如果运行在server端估计不会暴露性能问题,但是在终端上运行就比较慢

比如表A,有一个外键关联到表B。原来不好的做法,是先查询出表A中的N条记录,然后再遍历N条记录,从B表中查询,类似:

select * form tb_a;

select * from tb_b where b.id = ?;

这样如果A表中查询出N条记录,就需要执行N+1条SQL,可以利用连接查询合并成1条SQL

如果A的外键必不为空,可以使用内连接:

select a.*, b.* from tb_a a, tb_b b where a.bId = b.id;

这样就可以在一句SQL中把2个表的记录查出来。但是如果A的外键可能为空,就不能用上面这个语句,否则外键为空的记录就查不出来,需要使用外连接:

select a.*, b.* from tb_a a left join tb_b b on a.bId = b.id;

上面这个SQL语句,即使外键为空,也可以查出A表中的记录
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值