sql 问题, 球解答
a表:
a
id sid name
1 2 hello
2 2 hello2
b表:
b
sid bid name
2 2 额
3 2 哈哈
如上:
我想 查询 b 表所有字段, 但是要 根据 b表的sid 统计 a 表
已经有一条 select bb.*,(select count(1) from a as aa where aa.sid = bb.sid) from b as bb
不过貌似效率不高。。
球高手~~~~优化,优化, 指点迷津~
[解决办法]
select b.*,a.numfrom b inner join (select sid,count(1) as num from a group by sid)aon b.sid=a.sida,b的SID上都建立索引
[解决办法]
select
b.*,a.num
from
b
left join (select sid,count(1) as num from a group by sid)a
on
b.sid=a.sid
这要看你的数据分布.
两表SID有索引么?
有索引.子查询不一定慢.