시설, 직원, 완료 단위, 프로젝트 및 근무 교대를 저장하는 5 개의 테이블이 있습니다.복합 MYSQL 5 개 테이블 중에서 선택
시설에 프로젝트에 로그온 한 시간이있는 경우 각 시설에서 프로젝트의 생산성 (누적 완료 횟수 및 누적 시간)을 결정해야합니다. 기능은 직원 테이블에 저장됩니다. 여기
(이 질문에 대한 필요한 필드로 감소) 내 테이블 구조입니다 : 이 직원과 함께 저장됩니다facilities
+------------+
| id |
+------------+
| label |
+------------+
employees
+------------+
| id |
+------------+
| facility |
+------------+
completes
+------------+
| id |
+------------+
| project |
+------------+
| completes |
+------------+
| employee |
+------------+
projects
+------------+
| id |
+------------+
| title |
+------------+
shifts
+------------+
| id |
+------------+
| project |
+------------+
| length |
+------------+
| employee |
+------------+
내가 시설에 대한 생산성을 선택하는 것입니다 문제로 실행하고,하지 교대 또는 # of 완료와 함께. 어쩌면 그게 디자인 결함일까요? 교대와 완료 테이블도 시설 칼럼을 가지고 있습니까? 직원이 이미 시설을 결정할 때 시설 열을 보유하는 것은 불필요한 것으로 보입니다.
SELECT p.title, SUM(c.completes), SUM(s.length)
FROM projects as p
LEFT JOIN completes as c ON c.project = p.id
LEFT JOIN shifts as s ON s.project = p.id
GROUP BY p.id, shifts.employee.facility;
물론 GROUP BY 문은 유효하지 않습니다. 그러나 그것은 내가 성취하고자하는 것을 보여줍니다. 나는 또한 성명서에서 시설 라벨을 선택하고 싶다. 어떻게 접근합니까?
사전 통찰력을 주셔서 감사합니다.