[字号:  ]

关于多表的SQL语句

发布时间:2008-11-04 22:34   作者: boysky85   信息来源: PHPChina 开源社区门户
请问:

A表
----------------------------------------------------
aid  name
1      记录一
2      记录二
3      记录三
----------------------------------------------------

B表
----------------------------------------------------
bid  aid
1     1
2     1
3     1
4     2
5     1
----------------------------------------------------


怎样得到结果为:
----------------------------------------------------
name      nunber
记录一     4
记录二     1
记录三     0
----------------------------------------------------


谢谢。。。。

最新回复

syb328 at 2008-11-04 22:40:18
select A.name as Name,count(B.aid=A.aid) as number from A,B where B.aid=A.aid
手写的,不知道行不行
boysky85 at 2008-11-04 22:49:52
好象出错了。。。。
心痛 at 2008-11-04 22:49:53
select a.name,count(b.aid) as number from table a left join tableb b using(aid) group by a.name
panjinww at 2008-11-04 22:53:47

QUOTE:

原帖由 心痛 于 2008-11-4 22:49 发表
select a.name,count(b.aid) as number from table a left join tableb b using(aid) group by a.name
UP
boysky85 at 2008-11-04 23:02:37
谢谢各位,但试过还是出错。。。
ironcrane at 2008-11-04 23:23:45
应该是这样吧,试试看
select a.name as name,count(b.aid) from a left join b on a.aid=b.aid group by a.name
linvo at 2008-11-05 00:45:48

QUOTE:

原帖由 ironcrane 于 2008-11-4 23:23 发表
应该是这样吧,试试看
select a.name as name,count(b.aid) from a left join b on a.aid=b.aid group by a.name
7楼正解

CODE:

SELECT name, COUNT( b.aid ) AS number
FROM a
LEFT JOIN b ON a.aid = b.aid
GROUP BY name
心痛 at 2008-11-05 08:13:25
你们自己去试试using和on的区别