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

如何使用JOIN关联两表,将l_id映射到g_id/p_id并获取对应名称

基于JOIN的SQL查询方案

需求说明

从table2关联table1,分别将g_id、p_id对应table1中的name字段取出,命名为g_name和p_name,输出指定格式结果,且需支持后续关联更多表。

表结构与数据

table1(ID-名称映射表):

e_id, name, l_id
123    dog   789
123    cat   543
123    owl   602

table2(业务数据表):

f_id, e_id, g_id, p_id
098    123   789   543
099    123   602   602
100    123   543   543
101    123   543   789
102    123   789   789 

最终SQL查询

SELECT 
    t2.e_id,
    g_t.name AS g_name,
    t2.g_id,
    p_t.name AS p_name,
    t2.p_id
FROM table2 t2
-- 关联table1获取g_id对应的名称
JOIN table1 g_t 
    ON t2.g_id = g_t.l_id 
    AND t2.e_id = g_t.e_id
-- 再次关联table1获取p_id对应的名称
JOIN table1 p_t 
    ON t2.p_id = p_t.l_id 
    AND t2.e_id = p_t.e_id
ORDER BY t2.f_id;

查询结果

e_id, g_name, g_id, p_name, p_id
123     dog    789   cat     543
123     owl    602   owl     602
123     cat    543   cat     543
123     cat    543   dog     789
123     dog    789   dog     789

方案解释

  • 对table1做两次JOIN操作,用g_t和p_t作为别名区分,避免表名冲突
  • 关联条件同时匹配e_id与对应ID字段(g_id/p_id和l_id),确保映射关系准确
  • 该结构具备扩展性,后续可直接在FROM/JOIN子句中添加其他关联表,不受UNION类方案的结构限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:43:10