mysql - 当我尝试使用 php 和 sql 在“餐厅”中预订餐桌时遇到问题
问题描述
我使用了这个查询:
SELECT
tavolo.ID_Tavolo
FROM
tavolo
LEFT JOIN prenota
ON tavolo.ID_Tavolo = prenota.ID_Tavolo
WHERE
tavolo.ID_Tavolo NOT IN
(SELECT
Prenota.ID_Tavolo
FROM
prenota)
OR tavolo.ID_Tavolo IN
(SELECT
prenota.ID_Tavolo
FROM
prenota
WHERE
Data_Pren != '2020-06-04'
OR Data_Pren = '2020-06-04'
AND Ora_Pren NOT BETWEEN '19:00:00' AND '20:30:00'
AND ADDTIME(Ora_Pren, "1:30:00.000000") NOT BETWEEN '19:00:00' AND '20:30:00')
ORDER BY Tavolo.ID_Tavolo
当数据库中没有数据时它可以工作,但是在创建 3 个预订(我有 3 个表)之后,它每次都开始使用相同的 ID(7)不检查日期。
这些是我的桌子:
Prenota 表(结构)
Prenota 表(数据)
Tavolo 表(结构)
Tavolo 表(数据)
(查询通过检查来工作:
1) 如果 ID 在“prenota”表中不存在,请给我 ID;
2) 如果 ID 已经存在并且日期不同或日期相同但时间不在注册时间和 +1h30m 之间并添加1h30m 以检查在该小时内是否所有表仍然不可用。
这是我尝试查询的屏幕:
我只是想知道如何通过检查来预订工作表:
1)表的ID
2) 已预订餐桌的日期
3) 已订桌时间
4)如果发现“差距”,请检查用户选择的时间和时间+1h30m(您可以留在餐桌的最长时间)进行预订
这是尝试的链接:https ://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=87563a5b3f14efee1ffc535e14675f06
解决方案
推荐阅读
- swift - 隐藏导航栏 SwiftUI for MacOS 11.1
- flutter - 您是否应该在按钮中等待 Navigator 调用
- php - 从不同的复选框创建数组然后序列化的最佳方法是什么?
- vhdl - 如何将多个 VHDL 代码组合成一个系统
- apache-kafka - Http 响应标头配置在 Kafka 休息代理和模式注册表中不起作用
- excel - 将选择内部颜色索引复制到不同工作表上的相同区域
- c# - Datagrid 保持为空,但 ObservableCollection 有值
- flutter - 如何“硬编码”检查 void 类型的相等性?
- apache-pig - 尝试在猪中加载文件,但每次都会出现此问题。警告 IMPLICIT_CAST_TO_FLOAT 2 次
- r - 如何编写一个使用其他 R 函数作为参数的 R 函数?