英语轻松读发新版了,欢迎下载、更新

两个sql哪个效率高点?

softting 发布于 2014年12月11日 | 更新于 2014年12月11日
无人欣赏。

表A(用户)    1对多     表B(收费记录)

id                                   id

name                             Aid

                                      money

现要查询表A每个用户的收费总和

sql1:

select 
A.id
A.name
(select sum(B.money) from B where B.Aid = A.id) sumMoney
from A

sql2:

select 
    A.id 
   A.name
   tab.sumMoney

from A left join (select sum(B.money) sumMoney,B.Aid from B group by B.Aid) tab on tab.Aid = A.id

sql1 和sql 2 哪个效率高点?

共7条回复
softting 回复于 2014年12月11日

sql2 后面有一段没有接上-。-

Gavin 回复于 2014年12月11日

话说自己看执行时间,就能知道效率了啊.

softting 回复于 2014年12月11日

2楼 @Gavin 我觉得我得造好几十万好几百万个数据才能造试出来相差的时间。。。。其他方法有么?我不会-。-

吕侯 回复于 2014年12月11日

看不懂你写的什么。要我写是这样:

select a.id, a.name, sum(b.money) as sum where a left join b on a.id = b.aid group by a.id
snoopy 回复于 2014年12月11日

用表连接效率应该高点

贵人 回复于 2014年12月11日

目测sql2效率更高

梦中醒不过来 回复于 2014年12月11日

sql1是A次查询 sql2是a*b的大表关联后1次查询 显而易见是sql2快

登录 或者 注册