繁体   English   中英

在 SQL 中,如何将一个表的多个列中的多个外键 ID 连接到另一个表中的单个主键和唯一的 select 一个?

[英]In SQL, how to join multiple foreign keys IDs in multiple columns of a table to a single primary key in another table and uniquely select one?

表 A:患者遇到的相关诊断(DX)

Encounter_ID 日期 Primary_DX DX_2 DX_3 DX_4
11111 2020 年 1 月 1 日 234234 256756 254537 678688
11112 2020 年 5 月 1 日 344564 234553 6786667 234234
11113 2022 年 1 月 1 日 123233 656444 678688 535465
11114 2021 年 1 月 1 日 435345 666654 3453453 456448

表 B :诊断 (DX) 代码与其各自的 ICD 代码相关联

注意:此表的代码已针对DX_ID / ICD_CODE进行过滤,专门针对心脏病。

DX_ID ICD_CODE
234234 N123.42
344564 N45.32
234553 N153.24
678688 N365.34

我寻求只遇到以下条件:

表A中的Primary_DX、DX_2、DX_3、DX_4代码中至少有一个是心脏病,即它们各自的诊断代码可以链接到表B。

从这个列表中,我试图只获取该心脏病诊断代码的 ICD_Code

我必须分两步执行此操作:

  1. 获取表 A 中至少一个DX_code是表 B 中的DX_Code的所有遭遇。

  2. 从这个临时表中, select 只有心脏病代码并检索ICD_code 如果一次遭遇有多种心脏病,那么它们将显示为两个单独的行。

所以最终的 output 可以具有以下格式:

Encounter_ID ICD_CODE
11111 N123.42
11111 N45.32
11112 N123.42
11115 N15.42
11114 N123.42

现在过滤具有EXISTS原因的心脏病 dx_codes,如下所示:

SELECT
    Enounter_ID,
    Primary_DX,
    DX_2,
    DX_3,
    DX_4,
FROM 
    TABLE_A
WHERE   
    EXISTS (SELECT 1 FROM TABLE_B)

但是我遇到了没有任何关联诊断来自心脏病表的情况。

这还不够吗?

select Encounter_ID, ICD_CODE 
  from Table_A, Table_B
 where Primary_DX = DX_ID
    or DX_2 = DX_ID
    or DX_3 = DX_ID
    or DX_4 = DX_ID
order by Encounter_ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM