我正在嘗試加入兩個共享相同個人 ID ( key) 的表。第一個表 ( a) 是一個“寬”表,其中包含許多變數,包括key和age,第二個表 ( b) 是一個“長”表,僅包括變數key、diagnosis_number和diagnosis,其中每個人可以有多個 的值diagnosis。
我想為以下個人選擇列key、age和主要診斷:
diagnosis= "a"、"b" 或 "c" whendiagnosis_number= 1 ['主要診斷']- AND
diagnosis= "y" 對于diagnosis_number= 2:20中的任何一個
我試過了:
SELECT main.key, main.age, diag.diagnosis
FROM a as main
INNER JOIN
(
SELECT prim.key, prim.diagnosis
FROM
(SELECT DISTICT key, diagnosis
FROM b
WHERE diagnosis IN ('a', 'b', 'c')
AND diagnosis_number = 1) as prim
INNER JOIN
(SELECT DISTICT key, diagnosis
FROM b
WHERE diagnosis = 'y'
AND diagnosis_number BETWEEN 2 AND 20) as sec
ON prim.key = sec.key) as diag
ON main.key = diag.key
uj5u.com熱心網友回復:
認為這可以在沒有連接內的子查詢/選擇的情況下解決:
SQL 服務器
SELECT a.key, a.age, b.diagnosis
FROM a
INNER JOIN b
ON b.key = a.key
WHERE b.diagnosis IN ('a', 'b', 'c')
AND b.diagnosis_code = 1
AND a.key IN (SELECT b1.key
FROM b AS b1
WHERE b1.diagnosis = 'y'
AND b1.diagnosis_code BETWEEN 2 AND 20)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480134.html
