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

应使用哪种正确的JOIN?订单关联产品表查询无产品订单缺失问题

问题分析与解决方案

嘿,我来帮你拆解下你遇到的两个问题:

  • JOIN类型选择错误:你用的INNER JOIN只会返回两张表中满足关联条件的记录——也就是说,只有那些在Products表中能找到对应Product_Id的订单才会被展示。而你提到的“未关联产品的订单(服务订单)”,因为在Products表里没有匹配的Id,直接被INNER JOIN过滤掉了。要保留所有订单(不管有没有对应产品),你应该用LEFT JOIN(或者LEFT OUTER JOIN,两者功能完全一致),它会保留左表(这里是Orders)的所有记录,右表(Products)没有匹配项时,对应字段就返回NULL。

  • SQL语法拼写错误:你的查询语句里写了order.product_id,这里少了个复数后缀s,应该是orders.product_id,这个小失误也会导致查询无法正常执行。

下面是修正后的完整查询语句:

SELECT orders.id, orders.started, products.id AS product_id, products.name AS product_name
FROM orders
LEFT JOIN products ON products.id = orders.product_id;

这样执行后,所有订单都会被返回,没有对应产品的订单中,product_id和product_name字段会显示为NULL,完全符合你的需求。我还给产品相关字段加了别名,让查询结果更易读~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:21:00