嗨,我正在嘗試使 mysql 查詢正常作業并需要一些幫助。我有 2 張桌子(作業人員,預訂)。
員工表包含員工詳細資訊
| 職員編號 | 名 | 姓 |
|---|---|---|
| 1 | 約翰 | 美國能源部 |
| 2 | 瑪麗 | 美國能源部 |
預訂表包含
| 預訂編號 | 職員編號 | 地位 |
|---|---|---|
| 1 | 1 | 取消 |
| 2 | 1 | 取消 |
| 3 | 1 | 確認的 |
| 4 | 2 | 取消 |
| 5 | 1 | 確認的 |
我想了解每位員工的確認/取消預訂數量,但無法正常作業。我當前使用的查詢是
Select staff.StaffID, staff.First_name, staff.Last_name, sum(booking.Status LIKE '$status') as Status
from staff, booking
where staff.StaffID = booking.ConvenerID
group by staff.StaffID
$status是cancelled或confirmed。使用此查詢,如果有狀態值,我只能顯示一行,如果員工沒有取消,則不會顯示該員工的行。即使計數$status是0.
uj5u.com熱心網友回復:
您需要LEFT連接表:
SELECT s.StaffID, s.First_name, s.Last_name,
COALESCE(SUM(b.Status = ?), 0) AS counter
FROM staff s LEFT JOIN booking b
ON s.StaffID = b.StaffID
GROUP BY s.StaffID;
替換?為您想要的狀態值(沒有理由使用運算子,LIKE因為簡單的=作業正常)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342610.html
下一篇:如何使用Laravel分頁器?
