mysql- 获取出现次数

mysql- get number of occurrences

您好,我正在尝试使 mysql 查询正常工作,需要一些帮助。我有 2 tables(员工,预订)。

员工 table 包含员工详细信息

StaffID First_name Last_name
1 John Doe
2 Mary Doe

预订table包含

BookingID StaffID Status
1 1 cancelled
2 1 cancelled
3 1 confirmed
4 2 cancelled
5 1 confirmed

我想获取每位员工的 confirmed/cancelled 预订数量,但无法正常工作。我当前使用的查询是

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

$statuscancelledconfirmed。通过此查询,如果有状态值,我只能显示一行,如果员工没有取消,则不会显示该员工的行。即使 $status 的计数为 0.

,我如何才能显示该行

您需要 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,因为简单的 = 就可以正常工作)。