我在DB三個表 - APPLICATION
,APPLICANT
和ADDRESS
一個一對多加入
有1行中APPLICATION
。
APPLICANT
可以有1或2行通過APPLICATION_ID
鏈接回APPLICATION
。
ADDRESS
可以有1,2或3行通過APPLICANT_ID
鏈接回APPLICANT
。
APPLICATION
- >(1對多的上APPLICATION_ID
) - >APPLICANT
- >(1對多APPLICANT_ID
) - >ADDRESS
我需要編寫一個查詢,其提取特定來自每個表的字段(從「所有信息」更改爲)1個結果集。結果需要在一個結果行中包含每個應用程序的所有可能的信息。有人能指點我的最佳解決方案嗎?
我希望問題很清楚。我已經通過SO進行了搜索,但只能真正找到一些特定案例的答案,並且沒有關於一對多連接的一般信息。
好的我認爲我應該詳細闡述一下,以幫助那些真正花時間思考這個問題的人。以下是所有三個表中的一些示例虛擬數據。
APPLICATION
-----------
APPLICATION_ID|APP1|APP2|OTHER_STUFF
1 |1 |1 |x
APPLICANT
---------
APPLICANT_ID|APPLICATION_ID|FORENAME|OTHER_STUFF
1 |1 |Homer |x
2 |1 |Marge |x
ADDRESS
-------
ADDRESS_ID|APPLICANT_ID|STREET |OTHER_STUFF
1 |1 |Sesame Street |x
2 |1 |Evergreen Terrace|x
3 |2 |Evergreen Terrace|x
從SQL查詢會是這個樣子(希望)的結果;
APPLICATION_ID|APPLICANT_ID1|FORENAME1|ADDRESS_ID1|STREET1 |ADDRESS_ID2|STREET2 |APPLICANT_ID2|FORENAME_2|ADDRESS_ID3|STREET3
1 |1 |Homer |1 |Sesame Street|2 |Evergreen Terrace|2 |Marge |3 |Evergreen Terrace
感謝
魔術隊友!我不會假裝我理解它,但我已經嘗試了一下,它的運行方式正是我希望的。我知道這是一個非常具體的問題和答案,但希望其他人也會發現它有用。 – Urbley