gpt4 book ai didi

mysql - 从mysql查询显示今天不在场的人员列表

转载 作者:行者123 更新时间:2023-11-29 20:08:01 24 4
gpt4 key购买 nike

我正在尝试显示拥有此权限的人员列表

情况1:

忘记签到而在场

情况2:

今天缺席且无法签到的人。

在这两种情况下,签到都将为空,因为都没有签到

这就是我迄今为止所取得的成就

SELECT
u.id,
u.`firstname` AS 'Firstname',
u.`lastname` AS 'Lastname',
ulr.leave_status AS 'Leave Status',
ulr.leave_from AS 'Leave From',
ulr.leave_to AS 'Leave To',
ulr.leave_description AS 'Leave Description',
DATE_FORMAT(
ulr.leave_from,
'%Y-%m-%d'
) AS 'Today''s Date'
FROM
users u
INNER JOIN users_leave_request ulr ON u.id = ulr.user_id
INNER JOIN checkin_checkout cc ON u.id = cc.users_id
WHERE
DATE_FORMAT(
leave_from,
'%Y-%m-%d'
) = CURDATE()
AND cc.checkin_time IS NULL

users_leave_request 表:table1

checkin_checkout 表:table2

最佳答案

此查询将选择今天未签到的所有用户,如果他们在 users_leave_request 中有记录,则也将返回该记录的数据。通过使用LEFT JOIN,我们可以避免为在users_leave_request中没有条目的未 checkin 用户返回空结果。如果我们使用JOIN,只有在usersusers_leave_request表中都找到记录时才会返回结果。

SELECT
u.id,
u.`firstname` AS 'Firstname',
u.`lastname` AS 'Lastname',
ulr.leave_status AS 'Leave Status',
ulr.leave_from AS 'Leave From',
ulr.leave_to AS 'Leave To',
ulr.leave_description AS 'Leave Description',
DATE_FORMAT(
ulr.leave_from,
'%Y-%m-%d'
) AS 'Today''s Date'
FROM users AS u
LEFT JOIN users_leave_request ulr ON u.id = ulr.user_id
WHERE u.id NOT IN (
SELECT u.id
FROM
users u
INNER JOIN checkin_checkout cc ON u.id = cc.users_id
WHERE
DATE_FORMAT(cc.checkin_time, '%Y-%m-%d') = CURDATE()
)

关于mysql - 从mysql查询显示今天不在场的人员列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40276589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com