我正在構建一個查詢,在該查詢中,我試圖創建一個獨佔左連接,但是如果不將兩個查詢與union all放在一起,我找不到解決方案。在多個表格上獨佔左加入
我的SQL不按預期方式工作:
select link_table.key as lk_key, table_a.key as a_key, table_b.key as b_key
from link_table
left join table_a on (link_table.key = table_a.key_link_table)
left join table_b on (link_table.key = table_b.key_link_table)
我得到的結果是:
lk_key a_key b_key
123 abc xyz
456 def uvw
789 ghi NULL
我的解決方法:
select link_table.key as lk_key, table_a.key as a_key, null as b_key from link_table
left join table_a on (link_table.key = table_a.key_link_table)
union all
select link_table.key as lk_key, null as a_key, table_b.key as b_key from link_table
left join table_b on (link_table.key = table_b.key_link_table)
我能得到什麼作爲結果,並希望第一個SQL t o執行:
lk_key a_key b_key
123 abc NULL
123 NULL xyz
456 def NULL
456 NULL uvw
789 ghi NULL
這是可能的一個查詢?
你的「解決方法」有什麼問題? – 2014-11-05 20:31:37
如果可行,爲什麼改變它?運行需要9年嗎?它是否拉錯了數據?它裏面是否有太多元音? – Siyual 2014-11-05 20:36:59
我想也許有一個符合我的具體需求而不是使用union的sql/oracle關鍵字。不,我現在沒有性能問題。這只是花了我一些時間,直到我找出問題。 – Flexy 2014-11-05 21:08:12