You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

餐厅多类型订单关联查询:如何用单SQL获取对应关联信息

问题分析

原查询语句存在两个核心问题:

  1. 使用隐式内连接(逗号分隔表),导致线上订单(table_id=0)因无法匹配Tables表的记录而被过滤,无法查询到这类订单;
  2. 未添加Orders与Customers表的关联条件,会产生笛卡尔积,导致结果数据错误。
解决方案

使用**左连接(LEFT JOIN)**分别关联Tables和Customers表,确保所有订单都能被查询到,再通过CASE分支逻辑显示对应名称:

SELECT 
    o.id AS order_id,
    CASE 
        WHEN o.table_id > 0 THEN t.table_name
        ELSE c.customer_names
    END AS order_source_name
FROM orders o
LEFT JOIN tables t ON o.table_id = t.id
LEFT JOIN customers c ON o.customer_id = c.id
ORDER BY o.id ASC;
结果验证

执行上述语句后,会得到符合需求的结果:

order_idorder_source_name
1John
2Table 1
3Table 2

内容的提问来源于stack exchange,提问作者Europeuser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:52:05