2013-06-11 2 views
0

의 행의 개수와 테이블 B 가입 : table_A{id, table_b_id, table_c_id}, table_B{id,..} 나는 A의 모두를 얻기 위해 가입 왼쪽으로 사용하고 table_C{id}LEFT 3 개 테이블이 있습니다 테이블 C

이 table_B.id에 합류했다.

내가 필요한 것은 table_C의 항목 수를 추가하는 것입니다.
하위 쿼리를 사용하지 않는 것이 좋습니다. 가능합니까?

쿼리 :

SELECT table_A.* 
    FROM table_A 
LEFT JOIN table_B 
    ON table_B.id = table_A.table_b_id 
WHERE table_A.{field} = {condition} 
GROUP BY table_A.{some_field} 

답변

2

보조 노트에

SELECT table_A.*, 
     COUNT(table_C.id) count_of_c 
    FROM table_A 
LEFT JOIN table_B 
    ON table_B.id = table_A.table_b_id 
LEFT JOIN table_C 
    ON table_C.id = table_A.table_c_id 
WHERE table_A.{field} = {condition} 
GROUP BY table_A.{some_field} 

을 시도해보십시오 MySQL을 GROUP BY 확장 당신이 있기 때문에 그것을하지 않는 GROUP BY의 일부가 아닌 그 SELECT에 열을 넣을 수 있지만 그룹에서 어떤 행을 선택할지를 알 수있는 방법이 없습니다. 따라서 귀하의 SELECT 절은

table_A.{some_field}, <Aggregate function>(table_A.{other_field})... 

과 같아야하거나 table_A로 집계 결과에 가입해야합니다.