我有4個表,並希望以最有效的方式返回表中的鍵映射到其正確的條目。連接表並返回2個單獨的條目與NULL值
表A列:
[ SVC_PREFIX | SVC_CD | ... ]
表B列:
[ SVC_PREFIX | SVC_CD | SVC_ID |... ]
表C列:
[ SVC_ID | ... ]
表d列:
[ SVC_ID | ... ]
表A通過SVC_PREFIX和SVC_CD映射到表B然後表B然後通過SVC_ID負責檢索表C和D表C和D幾乎相同,除了表D具有比C少幾個列的列C例如,C可能有一個isGood而isSilly,但D只會有isSilly。 是否有可能檢索條目,以便D將用isSilly的NULL值提取,而C將帶來相應的數據?
下面是一個例子: 表A列:
[ SVC_PREFIX | SVC_CD | anotherData ]
[ 111 | 123 | AAA ]
表B列:
[ SVC_PREFIX | SVC_CD | SVC_ID ]
[ 111 | 123 | 007]
表C列:
[ SVC_ID | isGood | isHappy ]
[ 007 | Y | Y ]
表d列:
[ SVC_ID | isGood ]
[ 007 | Y ]
數據我想檢索:
[ SVC_PREFIX | SVC_CD | anotherData | SVC_ID | isGood | isHappy ]
實際數據
[ 111 | 123 | AAA | 007 | Y | Y ]
[ 111 | 123 | AAA | 007 | Y | NULL ]
我想要顯示C和D的表作爲單獨的行。
目前,我有一個隱含的加入,但並沒有達到我的願望,結果...
SELECT *
FROM A,B,C,D
WHERE A.SVC_PREFIX = B.SVC_PREFIX
AND A.SVC_CD = B.SVC_CD
AND B.SVC_ID = C.SVC_ID
AND B.SVC_ID = D.SVC_ID
AND C.SVC_ID = D.SVC_ID
感謝您的幫助!
注意:數據庫有密鑰。和強大的類型。看起來你可以加入A和B,並且加入B&C和B&D(或C&D)。 – wildplasser
這個記錄來自'[111 | 123 | AAA | 007 | Y | NULL]'?我的意思是爲什麼有'null'? –
@JohnWoo從技術上說,這個記錄不存在。然而,null表示它來自表D,它與C的數據基本上是相同的數據,除了它沒有,在這個例子中,這是很好的 – bigbitecode