MySQL - 检查表中的数据是否存在于另一个表中

时间:2017-09-17 12:12:19

标签: php mysql database

我正在开发一个迷你餐厅管理系统,我有这些数据库设计。

这是我的“ TABLE ”表。

TABLES table

这是我的“ORDERS”表。

ORDERS table

我想提出一个查询,以确定表格是空置还是占用。我的订单表中有一个名为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!

1 个答案:

答案 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;