gpt4 book ai didi

mysql - 餐厅餐 table 预订 : MySQL Select should show a list of one table and its reservations

转载 作者:行者123 更新时间:2023-11-29 12:10:55 24 4
gpt4 key购买 nike

我现在正为一个问题而苦苦挣扎。我必须制定一家餐厅的预订计划。所以我有表格和时间窗口。用户可以在特定的时间窗口内预订餐 table 。现在我想要一个选择,它向我显示一张表中的所有时间窗口以及谁预订了它,无论是否预订。如果不是,单元格应该是空的。

我有这些表

tables
- table_id
- description

time-windows
- time-window_id
- fk_table_id
- starttime
- endtime

reservations
- reservation_id
- fk_time-window_id
- fk_user_id
- Date

user
- user_id
- name

结果应该是这样的列表:

time-window_id | table_id | start    |  end      | user_id   | username
2 | 1 | 08:00:00 | 08:30:00 | 55 | Tom
3 | 1 | 08:30:00 | 09:00:00 | |
4 | 1 | 09:00:00 | 09:30:00 | 23 | Ben
5 | 1 | 09:30:00 | 10:00:00 | |

通过正常的连接,我只能获得保留的时间窗口,但我也不希望列出保留的时间窗口。

有什么想法吗?也许它非常简单,但我不知道它是如何工作的:(

附注:是的,时间窗口是永久性的(我的客户的条件)

最佳答案

我会稍微改变你的数据库设计:时间窗口可以是一个仅定义时间的静态表。然后在每个预订记录中指定 table_id 和 time-window_id。通过这样的设计,您可以通过左连接预订表来完成您想要的事情。

SELECT `tables`.*, `time-windows`.*, `reservations`.*
FROM `tables`
JOIN `time-windows`
LEFT JOIN `reservations` ON `reservations`.`table_id` = `tables`.`table_id`
AND `reservations`.`time_window_id` = `time-windows`.`time_window_id`
WHERE `tables`.`table_id`=?;

关于mysql - 餐厅餐 table 预订 : MySQL Select should show a list of one table and its reservations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713812/

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