两个SQL表上的数据透视表,一个有5米+行?

时间:2014-02-25 08:40:40

标签: mysql sql pivot-table

表城市有2k行

INT id
VARCHAR name  

表人有5M行

VARCHAR person_id
INT city_id` (Foreign Key to table cities.id)

请注意,这是一对多的关系。

我想得到下表:

VARCHAR city_name
INT count

按计数降序

例如,如果表城市有3行

id    city_name
1     San Francisco
2     Los Angeles
3     New York

并且桌面人员指向旧金山的3M​​行,以及指向洛杉矶的2M行,我希望结果如下:

city_name       count
San Francisco   3,000,000
Los Angeles     2,000,000
New York        0

当我有5米行时,这可能只与SQL查询有关吗?

1 个答案:

答案 0 :(得分:2)

这不会成功吗?

SELECT 
    c.city_name, 
    COUNT(p.person_id) AS `count` 
FROM 
    cities c 
    LEFT OUTER JOIN persons p ON c.id = p.city_id 
GROUP BY 
    c.city_name