세 개의 테이블이 있는데 테이블 중 하나에서 모든 데이터를 선택하고 특정 데이터 행이 연결된 횟수를 COUNT 다른 두 테이블.LEFT JOIN 내에서 두 테이블의 여러 COUNT() LEFT JOIN 내에서
그래서 site_projects의 모든 데이터를 선택하십시오. 그런 다음 site_project_members WHITE site_projects
의 COUNT 개를 반환하십시오. id
= site_project_members
. pid
그리고 site_project_tasks WHERE site_projects
의 COUNT 개를 반환합니다. id
= site_project_members
. pid
나는이 질문에 의미가 있다고 생각한다. 그리고 문제없이 데이터베이스 (MySQL)를 쿼리합니다. 을 제외하고 두 가지 모두의 합계를 두 가지로 반환합니다.
,428,952,321 :site_projects
id | title | desc | start | deadline | progress
1 | Project 1 | a project | 1321748906 | 1329847200 | 20
site_project_members
id | pid | uid | img | hidden
1 | 1 | 1 | 1 | 0
2 | 1 | 2 | 2 | 0
site_project_tasks 여기
id | pid | desc | completed
1 | 1 | Task 1 | 1
1 | 1 | Task 2 | 0
(테이블 구조 아래 참조) 내 쿼리입니다 0
내가 얻는 결과는 다음과 같습니다
id | title | desc | progress | start | deadline | members | tasks
1 | Project 1 | a project | 20 | 1321748906 | 1329847200 | 4 | 4
은 "4"의 값 모두가되지 않습니다 그러나 2 있어야한다 : 수 S 누군가가 도움을? 많은 감사
감사합니다, 댄 정말 트릭을 할해야
잘못된 집계 때문입니다! MySQL은 다른 RDBMS와는 달리 집계를 중지하지 않습니다. 근본적으로 당신은'GROUP BY'를 지정하지 않았기 때문에 무작위 값을 돌려받습니다. – JNK