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

如何在Oracle中编写SELECT子查询关联交易与参照表展示关联信息

Oracle关联交易表与参照表的子查询实现方案

我来帮你搞定这个Oracle查询需求!先把两张表的结构和示例数据理清楚,方便我们编写语句:

表结构与示例数据

Transaction(交易表)

ID | Agency ID | Advertiser ID | Code
1  | 123       | 440           | samplecode

Reference(参照表)

ID  | LongName     | Type
123 | Agency1      | Agency
440 | Advertiser1  | Advertiser

实现查询语句

根据你的需求,我们可以用关联子查询来分别匹配交易表中Agency ID和Advertiser ID对应的参照表数据,SQL语句如下:

SELECT
    t.ID,
    t."Agency ID",
    -- 获取Agency对应的LongName和Type
    (SELECT r.LongName FROM Reference r WHERE r.ID = t."Agency ID") AS "LongName",
    (SELECT r.Type FROM Reference r WHERE r.ID = t."Agency ID") AS "Type",
    t."Advertiser ID",
    -- 获取Advertiser对应的LongName和Type
    (SELECT r.LongName FROM Reference r WHERE r.ID = t."Advertiser ID") AS "LongName",
    (SELECT r.Type FROM Reference r WHERE r.ID = t."Advertiser ID") AS "Type",
    t.Code
FROM Transaction t;

语句说明

  • 这里的关联子查询会逐行匹配交易表的Agency ID和Advertiser ID,从参照表中拉取对应的LongName和Type;
  • 因为输出需要重复的列名(两个LongName、两个Type),所以用双引号包裹列名来保留原名称(如果是实际业务场景,建议给列加区分别名,比如Agency_LongName,避免混淆);
  • 如果交易表中存在参照表没有匹配的ID,子查询会返回NULL,你可以根据需求用NVL()函数处理空值。

查询结果示例

执行上述语句后,会得到你需要的输出格式:

ID | Agency ID | LongName | Type   | Advertiser ID | LongName     | Type       | Code
1  | 123       | Agency1  | Agency | 440           | Advertiser1  | Advertiser | samplecode

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:52:58