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
$status
为 cancelled
或 confirmed
。通过此查询,如果有状态值,我只能显示一行,如果员工没有取消,则不会显示该员工的行。即使 $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
,因为简单的 =
就可以正常工作)。
您好,我正在尝试使 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
$status
为 cancelled
或 confirmed
。通过此查询,如果有状态值,我只能显示一行,如果员工没有取消,则不会显示该员工的行。即使 $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
,因为简单的 =
就可以正常工作)。