MySQL并从多个表中收集和计算信息

时间:2012-09-18 17:20:09

标签: mysql sql database

我在解决如何做到这一点时遇到了问题。这不是真正的问题,但非常相似。

我有桌子A

ID  Name
10  Bob
11  Tom
12  Suzie
13  Billy
14  Rob
15  Ben

然后是表B,其中B_ID引用表A中的ID

B_ID  Value
11    1500
13    2600

然后是表C,其中C_ID引用表A中的ID

C_ID MatchedWith
10   11
12   13
14   11
15   11

此查询的目的是列出表B中人员的姓名,以及从C中与他们匹配的人数

...所以生成的查询会给出类似的结果:

Name  Count
Tom   3
Bily  1

我完全不知道如何做到这一点,所以任何帮助都会超级!谢谢!

1 个答案:

答案 0 :(得分:1)

SELECT 
    A.Name,
    COUNT(*) as 'Count'
FROM 
    C
    JOIN B
    ON C.MatchedWith = B.B_ID
    JOIN A
    ON A.ID = B.B_ID
GROUP BY A.Name
ORDER BY Count DESC;