【发布时间】:2020-07-02 00:43:54
【问题描述】:
我有以下 MySQL 表:
[用户]
| id | name |
|----|---------|
| 1 | John |
| 2 | Anna |
| 3 | Peter |
[次]
| user_ID | date | time |
|---------|------------|--------|
| 1 | 2020-03-20 | 07:00 |
| 1 | 2020-03-21 | 08:00 |
| 3 | 2020-03-22 | 09:00 |
我的查询看起来像:
SELECT name, date, time
FROM users
INNER JOIN times ON times.user_ID = users.id
WHERE date = '2020-03-22';
我得到的是:
| name | date | time |
|---------|------------|--------|
| Peter | 2020-03-22 | 09:00 |
我想要的是:
| name | date | time |
|---------|------------|--------|
| John | | |
| Anna | | |
| Peter | 2020-03-22 | 09:00 |
有没有办法将时间表中不存在的行(不是字段!)与用户表连接起来?
【问题讨论】:
-
考虑将日期和时间存储为单个实体
-
我会使用 UNION 而不是 Inner Join