sql 有关问题, 球解答

sql 问题, 球解答a表:aidsidname12hello22hello2b表:bsidbidname22额32哈哈如上:我想 查询 b 表所有字段,

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 
不过貌似效率不高。。

球高手~~~~优化,优化, 指点迷津~


[解决办法]

SQL code
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

left join (select sid,count(1) as num from a group by sid)a
on
b.sid=a.sid

这要看你的数据分布.
两表SID有索引么?

有索引.子查询不一定慢.