[英]Can a table in SQL have multiple columns as foreign keys that refer only to one primary key of another table?
[英]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 。
我必须分两步执行此操作:
获取表 A 中至少一个DX_code
是表 B 中的DX_Code
的所有遭遇。
从这个临时表中, 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.