假設我有三個表:
主表:
。家屬:
交易:
。我只是想知道,為了獲得每個借款人的護照號碼,我必須使用什么SQL操作?我應該使用 JOIN 還是 UNION?考慮到我上面的模式,這兩個操作的區別是什么?
預期輸出:
。uj5u.com熱心網友回復:
如果我沒有理解錯的話,你想要左鍵連接s和coalesce():
select t。 *, coalesce(p.passportid, dp.passportid) as passportid
from transactions t left join
首選 p
on t.借款人uuid = p.uuid left join
依賴者 d
on t.借款人uuid = d.uuid left join
初選 pd
on pd.id = d.primaryid。
第一個left join直接匹配到primaries表。 第二個是通過dependents進行匹配。
uj5u.com熱心網友回復:
UNION是將2個具有相同列的表合并成一個表,它將在另一個表下添加一個表(將洗掉重復的記錄),union all將留下重復的記錄
。Join 將通過一個特定的邏輯從 2 個不同列的表中添加列
。在你的情況下,你不能使用 Union,因為沒有一個表是相同的。 你需要使用Join
select t.*, p.passportid, p.passportid , p.name
from transactions t left join
首選 p
on t.借款人uuid = p.uuid
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/320157.html
標籤:




