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

Oracle SQL中如何关联两张表获取含R_NAME和M_NAME的结果?

关联两张表获取多列名称的解决方案

表结构与需求

表A

IDPLACER_IDM_ID
1PLACE_15153
2PLACE_25254

表B

S_IDNAME
51A
52B
53C
54D

期望输出表

IDPLACER_NAMEM_NAME
1PLACE_1AC
2PLACE_2BD

已尝试的查询语句

SELECT
    id,
    place,
    name as r_name
FROM
    table_a 
    LEFT JOIN table_b ON r_id = s_id

当前查询结果

IDPLACER_NAME
1PLACE_1A
2PLACE_2B

解决方案

只需两次关联表B,分别通过R_ID和M_ID与表B的S_ID匹配,同时给表B设置不同别名区分两次关联,避免字段冲突。

正确SQL语句如下:

SELECT
    a.id,
    a.place,
    b_r.name AS r_name,
    b_m.name AS m_name
FROM
    table_a a
    LEFT JOIN table_b b_r ON a.r_id = b_r.s_id
    LEFT JOIN table_b b_m ON a.m_id = b_m.s_id

说明

  • 给表A设别名a,两次关联的表B分别设别名b_r(对应R_ID关联)和b_m(对应M_ID关联),明确区分不同关联的name字段。
  • 使用LEFT JOIN可保留表A中所有记录,即使R_ID/M_ID在表B无匹配值,对应字段会显示NULL;若仅需保留匹配记录,可替换为INNER JOIN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:52:50