这些是我的 table
RESERVATIONS
+--------+--------------------+-----------------+
| id | reservation_date | reservation_time|
+--------+--------------------+-----------------+
| 1 | November 05, 2019 | 9:00am-12:00pm |
| 2 | November 05, 2019 | 12:00pm-3:00pm |
| 3 | November 05, 2019 | 3:00pm-6:00pm |
| 4 | November 05, 2019 | 6:00pm-9:00pm |
| 5 | November 06, 2019 | 9:00am-12:00pm |
| 6 | November 06, 2019 | 12:00pm-3:00pm |
| 7 | November 06, 2019 | 3:00pm-6:00pm |
| 8 | November 12, 2019 | 9:00am-12:00pm |
| 9 | November 13, 2019 | 9:00am-12:00pm |
+--------+--------------------+-----------------+
reservation_date 是 VARCHAR 格式
TIME_AVAILABILITY
+--------+------------------+
| id | reservation_time |
+--------+------------------+
| 1 | 9:00am-12:00pm |
| 2 | 12:00pm-3:00pm |
| 3 | 3:00pm-6:00pm |
| 4 | 6:00pm-9:00pm |
+--------+------------------+
事情是这样的,我想根据 $_POST 变量和 RESERVATIONS 表显示我的 TIME_AVAILABILITY 表中的值。例如,如果用户输入的是 2019 年 11 月 5 日,它将不显示任何内容,因为 TIME_AVAILABILITY 表中的所有值都已经在 RESERVATIONS 表中,但是如果用户输入是 2019 年 11 月 6 日 它只会显示 6:00pm-9:00pm 我尝试使用 INNER JOIN,但我无法让它工作
最佳答案
连接到 RESERVATIONS
表的子查询的 TIME_AVAILABILITY
表将只产生 null
匹配项(这是您自从null
表示 TIME_AVAILABILITY
尚未填充 where
子句中的日期您的“POST”日期可以这样说):
select t.reservation_time
from TIME_AVAILABILITY t
left join (
select reservation_time, reservation_date
from RESERVATIONS
where reservation_date = 'November 05, 2019'
) as q
on t.reservation_time = q.reservation_time
where q.reservation_date is null;
关于mysql - 通过将 2 个表与 POST 变量进行比较来显示可用时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58849879/