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

如何从三张数据表中查询共有的最大salary字段值

三表共通salary最大值查询SQL方案

测试数据说明

现有a、b、c三张业务表,三张表均包含salary字段,测试数据如下:

  • 表a
    idsalary
    10110000
    10215000
    10318000
  • 表b
    idsalary
    11014000
    12721000
    11815000
  • 表c
    idsalary
    19115000
    19220000
    1938000

需求目标

查询同时在三张表中存在的salary值里的最大值,预期返回结果为15000。

可直接运行的SQL语句

通用兼容写法(支持所有SQL数据库)

通过内连接取三表salary的交集,再聚合取最大值,写法兼容MySQL、Oracle、SQL Server、PostgreSQL等所有主流数据库:

SELECT MAX(a.salary) AS salary
FROM a
JOIN b ON a.salary = b.salary
JOIN c ON a.salary = c.salary;

如果单表内存在重复的salary记录,可先对每个表的salary去重后再关联,减少关联计算量:

SELECT MAX(a.salary) AS salary
FROM (SELECT DISTINCT salary FROM a) a
JOIN (SELECT DISTINCT salary FROM b) b ON a.salary = b.salary
JOIN (SELECT DISTINCT salary FROM c) c ON a.salary = c.salary;

执行上述语句后,会过滤掉只在1张或2张表存在的salary值:8000仅在c表、10000仅在a表、14000仅在b表、18000仅在a表、20000仅在c表、21000仅在b表,最终仅保留三表共有的15000,取最大值后结果和预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:06:34