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

如何在SQL中将两张表的列数据映射生成第三张表?

两表字段映射生成结果表SQL实现

映射逻辑说明

需求本质是将表A每行存储的两个关联键,分别匹配表B中存储的键值映射关系,替换为对应的值后输出结果:

  • 表A的col1字段值,匹配表Bcol1的键,取表B对应col2作为结果表的col1
  • 表A的col2字段值,匹配表Bcol1的键,取表B对应col2作为结果表的col2

实现代码

因为需要对同一行的两个字段分别做映射,需要将表B和表A做两次关联查询,SQL如下:

SELECT
  b1.col2 AS col1,
  b2.col2 AS col2
FROM table_a a
INNER JOIN table_b b1
  ON a.col1 = b1.col1
INNER JOIN table_b b2
  ON a.col2 = b2.col1;

结果验证

用题目给出的示例数据执行上述SQL:

  1. 表A第一行(a,b):第一次关联取到a对应的值e,第二次关联取到b对应的值f,输出行(e,f)
  2. 表A第二行(c,d):第一次关联取到c对应的值g,第二次关联取到d对应的值h,输出行(g,h)
    完全符合预期结果。

注:如果存在表A的键在表B中无匹配映射、但仍需要保留该行的场景,可以将INNER JOIN替换为LEFT JOIN,无匹配的位置会返回NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:51:31