2013-10-07 2 views
0

저에게이 모든 것을 제공해 주셔서 감사합니다! 다음 작동하지만 현재 열 이름을 모두 포함하여 둘 이상의 행을 반환하는 방법을 알아낼 수 없습니다. 나는이 문장이 현재 작성된 방식이라는 것을 이해한다. 이것은 한 행만 반환하도록 지원된다. 그러나 몇 가지 하위 쿼리 예제를 시도했지만 내 합계 열은 항상 결과에서 제외 된 것처럼 보입니다. 어떤 도움도 굉장하고 감사 할 것입니다.MySQL은 다중 조인과 다중 합계를 사용하여 여러 행을 반환합니다.

SELECT 
club.id, 
club.name, 
club.status, 
users.firstname, 
users.lastname, 
users.rights, 
SUM(job.status > '0') AS total, 
SUM(job.status = '1') AS incomplete, 
SUM(job.status = '2') AS pending, 
SUM(job.status = '3') AS live, 
SUM(job.status = '4') AS closed 
FROM club 
LEFT JOIN surveys 
ON job.club_id = club.id 
LEFT JOIN users 
ON users.id = job.users_id 
WHERE job.status > 0 
+0

질문이 이해가 가지 않습니다. 무엇을보고 싶어하는지, 실제로보고있는 것이 무엇입니까? – miyasudokoro

+0

여러 행으로 인해 합계 열 (예 : 합계, 불완전, 보류 중, 종료 중)이 포함 된 하위 쿼리를 수행하는 방법을 알 수 없습니다. 위의 모든 데이터와 함께 하나의 행을 얻을 수 있지만 하위 쿼리로 포맷하려고하면 여러 행이 있지만 아니오 (전체, 불완전, 보류 중, 라이브, 닫힘)가됩니다. – MichaelM

답변

0

나는 당신이가는, 그러나 여기에서 기본적인 문제입니다하는지 전혀 확실하지 않다 : 당신이 GROUP BY 문이 없습니다. SUM과 같은 그룹화 함수를 사용하면 결과를 함께 그룹화 할 것이라고 mysql에 알린다. GROUP BY를 생략하면 모든 항목이 하나의 행에 그룹화됩니다. 당신은 사용자 당 하나 개의 행을 원한다면, 당신은 쿼리의 끝에서

GROUP BY users.id 

말을해야 (난 당신이 자신의 이름을 선택하고 있기 때문에, 그래서 가정). 이것은 당신에게 당신이 찾고있는 결과를 얻을 수없는 경우

, 당신은 가짜 데이터를 사용하여 찾고있는 어떤 결과의 예를 게시하시기 바랍니다, 나는 당신에게 더 자세한 대답을 줄 수 있습니다.

+0

와우 얼마나 바보 같습니까? 지금 GROUP BY가 대답했습니다. 무리 감사. 분명히 나는 ​​오랫동안 문제를 보는 함정에 빠졌고, 분명해야 할 것이 무엇인지를 놓쳤다. – MichaelM

관련 문제