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

如何基于Table C的两列有条件关联Table A、B并合并Value列?

直接用SQL实现中间表关联多表并合并结果列

完全可以用SQL直接实现,不用再转到R里处理。核心是利用COALESCE()函数合并关联后的两个Value列,避免生成两列的问题。

先回顾三张表结构:

Table A

IdValue
110
220
330

Table B

IdValue
14
26
38

Table C(中间关联表)

KeyTable_A_IdTable_B_Id
11NULL
2NULL2
32NULL
4NULL1

实现SQL语句

SELECT 
    c.Key,
    COALESCE(a.Value, b.Value) AS Value
FROM Table_C c
LEFT JOIN Table_A a ON c.Table_A_Id = a.Id
LEFT JOIN Table_B b ON c.Table_B_Id = b.Id
ORDER BY c.Key;

逻辑说明

  1. 从中间表Table_C出发,分别左关联Table_A和Table_B,关联条件对应各自的外键列
  2. COALESCE()函数会依次读取传入的参数,返回第一个非NULL的值。由于Table_C中同一行的Table_A_Id和Table_B_Id互斥(一个非空则另一个必为NULL),这个函数刚好能精准取到对应表的Value值
  3. 最后按Key排序,就能得到目标结果:
KeyValue
110
26
320
44

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:48:35