我有五個表格存儲設施,員工,完成的單位,項目和班次。複雜的MYSQL從5個表中選擇
我需要確定每個設施的項目的生產力(完成累計數和累積小時數),如果該設施有登錄項目的小時數。該設施存儲在員工表中。
這裏是我的表結構,(減少到必要的字段爲這個問題):
facilities
+------------+
| id |
+------------+
| label |
+------------+
employees
+------------+
| id |
+------------+
| facility |
+------------+
completes
+------------+
| id |
+------------+
| project |
+------------+
| completes |
+------------+
| employee |
+------------+
projects
+------------+
| id |
+------------+
| title |
+------------+
shifts
+------------+
| id |
+------------+
| project |
+------------+
| length |
+------------+
| employee |
+------------+
當我遇到麻煩的是選擇生產的工廠,當存儲與員工,不與轉變或#完成。也許這是一個設計缺陷?班次和完成表是否也有設施專欄?當員工已經確定設施時,擁有設施欄似乎是多餘的。
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聲明當然是無效的。但它表明了我想要完成的事情。我還想在聲明中選擇設施標籤。我如何解決這個問題?
在此先感謝您提供的任何見解!