SQL Join和Count

时间:2009-11-10 06:37:29

标签: sql join

我希望连接两个表并根据第一个表中的ID获取数据,并根据相同的ID计算第二个表中的列记录。我想要一个单独的查询,它给我输出。

3 个答案:

答案 0 :(得分:4)

以下是您的问题的用例/示例和建议的解决方案: 您有两个表User和User_Friends,分别存储用户数据和联系信息。

您想要显示用户的姓名和联系人数量。

Table User:
id Name
0   A
1   B
2   C
3   D

Table User_Friends:
id friend_id
0    1
0    2
0    3
1    2
1    3

Output:
Name    Count(*)
A        3
B        2
C        0
D        0

//Display the Name, number of friends
SELECT Name, count(*)
FROM User, User_Friends
WHERE User.id = User_Friends.id
GROUP BY User_Friends.id

答案 1 :(得分:3)

你问的是这样的查询:

select t1.id, count(t2.id)
 from table1 as t1
 left outer join table2 as t2
  on t2.table1_id = t1.id
 group by t1.id;

答案 2 :(得分:1)

select 
   ID,
   (select count(*) from table2 where ID=p.ID) as [count]
from table1 p