2011-06-08 34 views
1

我有這個樣子加入兩種不同的選擇結果集

SELECT DISTINCT(NAME, PHONE_NUMBER) FROM PHONE_CALLS GROUP BY NAME, PHONE_NUMBER; 

SELECT DISTINCT(NAME, PHONE_NUMBER) FROM MISSED_CALLS GROUP BY NAME, PHONE_NUMBER; 

這是兩個不同的表中兩個SELECT語句。

我想加入的結果集每個在PHONE_CALLS PHONE_NUMBER這些語句,這樣的結果看起來像

phone_calls.NAME phone_calls.PHONE_NUMBER missed_calls.NAME, missed_calls.PHONE_NUMBER 

...如果有一個匹配..這可能嗎?謝謝,

回答

3
select distinct pc.name, pc.phone_number, mc.name missed_name 
from phone_calls pc, missed_calls mc 
where pc.phone_number = mc.phone_number 

這會給你所有的電話號碼既有接到電話,也有未接電話。如果您還需要那些只接到或未接電話的,請使用

select distinct 
    pc.name, 
    coalesce(pc.phone_number,mc.phone_number) phone_number, 
    mc.name missed_name 
from phone_calls pc 
full outer join missed_calls mc on pc.phone_number = mc.phone_number 

改爲。