2016-10-28 65 views
0

這有點奇怪,但我需要從具有給定的唯一標識符的兩個表中選擇一個。比方說,該表中的樣子:從兩個表中返回一個表,其中條件存在於其中一個或另一個

ID CallNumber Caller 

和表B中的樣子:

ID CallNumber Caller 

,我有一個唯一的標識符,可以在任何一個。我怎麼能寫一個select語句來返回這些列並顯示來自表A或表B的數據?我想出迄今:

SELECT 
coalesce(a.ID,t.id) as ID 
,coalesce(a.CallNumber,t.CallNumber) as CallNumber 
,coalesce(a.Caller,t.Caller) as Caller 
FROM tableA a 
right join tableB b on b.ID = a.ID 
where a.ID = '' or b.ID = '' 

但如果ID住在表A,這將只返回唯一標識符

+0

樣本數據和預期結果將使我們更好地理解 –

+1

這是一個很好的開始。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –

+0

我想't.ID','t.caller'等都是應該是'b.ID','b.caller' ...? – DenStudent

回答

1

如果它需要一個查詢,則可以查詢兩個表並混合結果。你不需要打擾連接表或其他邏輯。

select 
    ID, 
    CallNumber, 
    Caller 
from 
    tableA 
where 
    ID = theID 

union all -- adding 'all' avoids unnecessary sorting operation 

select 
    ID, 
    CallNumber, 
    Caller 
from 
    tableB 
where 
    ID = theID 
相關問題