【发布时间】:2022-01-28 05:41:02
【问题描述】:
如何在 Mysql 中执行此操作以获取所有用户,即使在所选日期范围内没有记录或缺席?
attendance_tbl
| ID | user_id | time_in | time_out | created_at |
|---|---|---|---|---|
| 1 | 001 | 2022-01-01 08:00:00 | 2022-01-01 17:00:00 | 2022-01-03 08:00:00 |
| 2 | 002 | 2022-01-01 08:15:24 | 2022-01-01 17:00:00 | 2022-01-03 08:15:24 |
| 3 | 003 | 2022-01-02 08:44:55 | 2022-01-02 17:00:00 | 2022-01-04 08:44:55 |
| 4 | 004 | 2022-01-03 08:40:22 | 2022-01-03 17:00:00 | 2022-01-04 08:40:22 |
users_tbl
| ID | user_id | f_name |
|---|---|---|
| 1 | 001 | John Doe |
| 2 | 002 | Jane Doe |
| 3 | 003 | Ronal Black |
| 4 | 004 | Lucy White |
预计输出日期范围:2022-01-01 至 2022-01-03 将获取所有用户全名
| ID | user_id | Date | f_name | time_in | time_out | created_at |
|---|---|---|---|---|---|---|
| 1 | 001 | Jan 1 2022 | John Doe | 2022-01-01 08:00:00 | 2022-01-01 17:00:00 | 2022-01-03 08:00:00 |
| 2 | 002 | Jan 1 2022 | Jane Doe | 2022-01-01 08:15:24 | 2022-01-01 08:15:24 | 2022-01-03 08:00:00 |
| 3 | 003 | Jan 1 2022 | Ronal Black | |||
| 4 | 004 | Jan 1 2022 | Lucy White | |||
| 5 | 001 | Jan 2 2022 | John Doe | |||
| 6 | 002 | Jan 2 2022 | Jane Doe | |||
| 7 | 003 | Jan 2 2022 | Ronal Black | 2022-01-02 17:00:00 | 2022-01-02 17:00:00 | 2022-01-02 17:00:00 |
| 8 | 004 | Jan 2 2022 | Lucy White | |||
| 9 | 001 | Jan 3 2022 | John Doe | |||
| 10 | 002 | Jan 3 2022 | Jane Doe | |||
| 11 | 003 | Jan 3 2022 | Ronal Black | |||
| 12 | 004 | Jan 3 2022 | Lucy White | 2022-01-04 17:00:00 | 2022-01-04 17:00:00 | 2022-01-04 17:00:00 |
【问题讨论】:
-
请删除那些外部链接,而是将所有相关示例数据作为文本直接包含在您的问题中。
-
请修复您的示例表数据,特别是在
users_tbl中有点混乱,user_id列是时间格式,attendance_tbl中的user_id是空白的。 -
@TheCoolCat 我已经编辑了帖子。
-
感谢您的回复,但请在您的问题中添加详细信息。这使得现在和将来阅读问题和答案的其他人的一切都变得更加清晰。您没有具体解决我关于需要显示没有用户在场的日期的问题。例如,如果“2022 年 1 月 23 日”(星期日)的出席记录中没有条目,您是否仍需要在该日期为所有用户提供一行?还是每天都会有至少一个用户在场?出去吃午饭的用户会有多个条目吗?我们需要 MIN(time_in) 和 MAX(time_out) 吗?
-
请通过编辑将所有说明添加到您的问题中。这样更容易理解问题
标签: mysql