首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 有关问题, 球解答

2012-10-21 
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有索引么?

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

热点排行