2014-02-25 5 views
2

표 도시는 2K 행5m + 행이있는 두 개의 SQL 테이블에 피벗 테이블이 있습니까?

INT id 
VARCHAR name 

테이블 명을 가지고하는 것은 5M 행을

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

참고가이 일대 다 관계입니다.

나는 다음 표 좀하고 싶습니다 : 테이블 도시는 3 행

id city_name 
1  San Francisco 
2  Los Angeles 
3  New York 

을 가지고 있으며, 테이블 명 3M이있는 경우, 예를 들어

횟수별로 내림차순으로

VARCHAR city_name 
INT count 

을 샌프란시스코를 가리키는 행과 로스 앤젤레스를 가리키는 2M 행의 결과는 다음과 같습니다.

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

5m 행이있을 때 SQL 쿼리만으로 가능합니까?

+0

현재 SQL은 무엇입니까? –

답변

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 
+0

그것은 제공하고 persons.city_id에 색인을 제공 할 것입니다 – vadchen

+0

그것은 여전히 ​​색인없이 작동 할 것이고, 단지 매우 느릴 것입니다. –

관련 문제