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

使用UNION查询单批发货重量最大/最小城市的SQL报错求助

解决UNION合并带ORDER BY和LIMIT查询的语法错误问题

修正后的SQL语句

(
SELECT
    c.long_name, s.weight
FROM
    sql.city c
    JOIN sql.shipment s ON c.city_id = s.city_id
ORDER BY s.weight DESC
LIMIT 1
)
UNION
(
SELECT
    c.long_name, s.weight
FROM
    sql.city c
    JOIN sql.shipment s ON c.city_id = s.city_id
ORDER BY s.weight
LIMIT 1
)

错误原因与修正说明

原语句报错是因为直接在UNION的单个查询分支后使用ORDER BY和LIMIT不符合语法规范。数据库无法识别未被包裹的排序、限制逻辑属于哪个分支,因此抛出syntax error at or near "UNION"。

把每个查询用括号包裹后,数据库会先独立执行每个子查询:分别完成排序并取出1条最大/最小重量的记录,再将两个结果集通过UNION合并,完全符合你用UNION解决问题的要求。

注意:如果存在多个城市对应相同的最大/最小重量,LIMIT 1只会返回其中一条。若需要获取所有符合条件的记录,可后续调整逻辑,但当前写法已满足“找出单批发货重量最大和最小对应城市”的基础需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:40:23