我正在做餐厅项目。餐厅接受网上订单和“餐厅内”订单
我需要使用 1 个查询打印出所有有效订单。当我需要将在线订单与特定客户关联时,问题就出现了。对于“餐厅内”订单,我不需要将订单与 customer_id 关联,但我需要将 table_id 与其名称关联。我的数据库如下所示:
顾客
ID | 客户姓名 |
---|---|
10 | 约翰 |
11 | 彼得 |
表格
ID | 表名 |
---|---|
1 | 表 1 |
2 | 表 2 |
订单
ID | 表 ID | 客户 ID |
---|---|---|
1 | 0 | 10 |
2 | 1 | 0 |
3 | 2 | 0 |
我的疑问是:
SELECT t.id, o.id as oid, (
CASE WHEN t.id > 0 THEN
t.table_name
ELSE
c.customer_names
END
) AS table_name
FROM tables t, orders o, customers c
WHERE o.table_id = t.id
GROUP BY o.id order by o.id asc;
我想要实现的是当 o.table_id > 0 时我需要看到 t.table_name,否则订单是用于交付的,然后我应该看到 customer_names 而不是 table_name
我该怎么做?感谢您的时间!
查看示例