数据库是mysql的,共三个表:A表:
id  name  tel
1   A1     0
2   A2     0
3   A3     0
4   A4     0B表:
id  name  aid
1   A     1
2   A     1C表:
id  name  aid
1   A     1现在需要用一条查询语句获取数据:
列出A表中所有字段,并统计出 B表与C表中aid等于A表id的总数。我写的语句:
SELECT a.id,a.name,count(b.aid) AS bnum,count(c.aid) AS cnum, FROM a  
Left Join b on a.id = b.aid 
Left Join c on a.id = c.aid 
group by a.id 
可获取的B表使用的总数正确,C表的老出错,似乎老是B表总数的倍数!特请教!!!

解决方案 »

  1.   

    列出A表中所有字段,并统计出 B表与C表中aid等于A表id的总数。select a.*,tempb.*,temc.* from a,
    (select count(b.aid) from a,b where b.aid = a.id ) tempb,(select count(c.aid) from a,c where c.aid = a.id ) tempc上面没试在数据库上试,也差不多了。 关键就是用子查询。。
      

  2.   


    你以为用join就快啊。数据量大,一样翘辫子。,在几个表上关联的字段上建了索引就不会很慢的。你要是要求高性能的,去MS Sql板块问吧。虽然数据库不一样,但是 sql是标准 sql。csdn 也就是MS Sql板块人多。