2010-03-27 2 views
1

사용자 테이블왜이 왼쪽 조인 쿼리가 왼쪽 테이블의 모든 데이터를로드하지 못했습니다?

+-----+-----------+ 
| id | username | 
+-----+-----------+ 
| 1 | tom  | 
| 2 | jelly  | 
| 3 | foo  | 
| 4 | bar  | 
+-----+-----------+ 

그룹 테이블

+----+---------+-----------------------------+ 
| id | user_id | title      | 
+----+---------+-----------------------------+ 
| 2 |  1 | title 1      | 
| 4 |  1 | title 2      | 
+----+---------+-----------------------------+ 

쿼리

SELECT users.username,users.id,count(groups.title) as group_count 
FROM users 
LEFT JOIN groups 
ON users.id = groups.user_id 

결과 나머지 사용자의 정보가

+----------+----+-------------+ 
| username | id | group_count | 
+----------+----+-------------+ 
| tom  | 1 |   2 | 
+----------+----+-------------+ 

? 결과는 내부 조인과 동일합니다. 왼쪽 테이블의 데이터를 모두 조인으로 남아 있지 않아야합니까?

PS : 나는 모든 사용자가 반환했다,

답변

3

group by 절이 필요하지 않습니까?

group by users.username,users.id 

는 MySQL의에 대해 잘 모르고 있지만, 당신이 옳다

+0

를 실행하는 경우 MSSQL에서이 필요한 것입니다! – limboy

0

당신이 group_count 열 수 무엇을 기대 MySQL을 사용하고 있습니다? 그룹이없는 사용자의 경우 자연스러운 것처럼 보이는 0을 원하면 그 결과에 도달하고 어떻게 하나 이상의 행을 계속 출력합니까?

관련 문제