我建立了一段时间前开发的解决方案 - 机票预订。我现在需要添加一个功能,以允许门票被保持"在购买过程中,使它们看起来像卖给另一位来到网站的客户(防止双重预订)。
原始表格的详细信息在我之前的问题MySQL - Trying to count tickets sold for an event中。 tickets
表现在具有held_until
DateTime值和paid
tinyint(bool)值。
我需要events.capacity - COUNT(tickets.id) AS available
现在只计算那些:
paid
值为0且paid
我已尝试添加held_until > now()
和WHERE
条款,但这些条款会阻止未售出任何故障单的事件。我也玩过嵌套查询,但没有得到任何地方...
有什么建议吗?
答案 0 :(得分:0)
修改Andomar建议的查询(在其他主题中),如下所示:
变化
ON events.id = tickets.event_id
到
ON ( events.id = tickets.event_id AND ( tickets.paid = 1 OR tickets.held_until > now() )
即使您可以在其他主题中找到所有必需的信息,也可以在此重复一些相关细节。