Mysql SQL查询-需要帮助吗

Mysql SQL查询-需要帮助吗,mysql,sql,select,insert,field,Mysql,Sql,Select,Insert,Field,只是需要一些快速的帮助,为一个完整的noob构造一个sql查询。我复制了下面的db模式 您的设计偏离了目标。 Avail属性描述的是普通主席,而不是某一时刻的主席。假设你有两个节目,一个是今天,另一个是10天。人们预订了今天的节目,桌椅更新了,座位也有人了。现在有人想订晚一点的节目。。哦,它被占用了。如果你有100场演出,而每场只有一名观众,那么你仍然会在每场演出中坐满100把椅子 此声明将为您提供特定节目的所有座位及其状态 select c.chair_id, (case when b.cha

只是需要一些快速的帮助,为一个完整的noob构造一个sql查询。我复制了下面的db模式

您的设计偏离了目标。 Avail属性描述的是普通主席,而不是某一时刻的主席。假设你有两个节目,一个是今天,另一个是10天。人们预订了今天的节目,桌椅更新了,座位也有人了。现在有人想订晚一点的节目。。哦,它被占用了。如果你有100场演出,而每场只有一名观众,那么你仍然会在每场演出中坐满100把椅子

此声明将为您提供特定节目的所有座位及其状态

select c.chair_id,
(case when b.chair_id is null then 1 else 0 end) available
from shows s
inner join booki1 b on s.show_id = b.show_id
left join chairs c on b.chair_id = c.chair_id
where s.show_id = *insert show id here*
这将为特定展会选择所有可用椅子。 此外,我建议对椅子/表演使用一些自动递增的整数Id。
当您可以有一个DateTime列时,有两个date/time列看起来真的很奇怪。需要一些时间来想象您实际需要的特定情况。

我不认为可用性是您应该存储的东西,但是,在更新值时必须考虑DDate和TTime。-你的意思是什么?当然这也应该是一个更新,而不是一个插入,因为当你改变它的可用性时,椅子排应该已经存在了。哦,你更新/插入一个表名,即Chairi我的意思是-我需要根据日期和时间显示座位的可用性谢谢你的解释-非常有用,可以看到我偏离目标的地方。从模式中,您认为是否可以选择所有的座位,而不管它们是否已经预订,然后指出哪些座位已经在我的预订系统中预订。。理想情况下,我希望用不可用和可用的座位填充我的网页,然后将不可用的座位样式设置为“红色”,例如,选择时可以导出可用/不可用的座位,为该查询创建一个视图是有意义的。我将简短地更新我的答案。您可以将此设置为一个视图,通过稍微修改查询以包含show_id以供以后筛选,从而返回所有节目的所有预订信息,或者您可以将其设置为一个函数并将show_id作为参数传递感谢您的帮助-非常感谢-很快将对其进行测试!嗨@ReceivedNoise。。只是尝试了这个查询,它没有返回任何chairno的返回-它声明它是一个空集。我把所有的数据都放在椅子上,而在第1册里没有数据。。你能看到你提供的代码中有一点小错误吗?