我正在开发一个迷你餐厅管理系统,我有这些数据库设计。
这是我的“ TABLE ”表。
这是我的“ORDERS”表。
我想提出一个查询,以确定表格是空置还是占用。我的订单表中有一个名为fread
的列,我想将该列作为我的基础,无论表是空置还是占用。由于订单表中的has_paid
,订单表已连接到我的“表格”表。
理想情况下,我希望有一个查询会产生如下结果:
table_id
另请注意,table.id | table.name | available or occupied
1 | table 1 | available
2 | table 2 | occupied
3 | table 3 | occupied
4 | table 4 | available
表将包含重复表ID的数据。与场景一样,多个客户在一天内使用了同一个表。
我对如何进行这样的查询一无所知。非常感谢您的帮助。谢谢Stackoverflow!
答案 0 :(得分:1)
您很可能想要orders
的最新记录。一种方法是相关子查询:
select t.*,
(select (case when has_paid = 0 then 'occupied' else 'vacant' end)
from orders o
where o.table_id = t.table_id
order by o.id desc
limit 1
) as vacant_or_occupied
from tables t;