2013-12-09 84 views
-1

我在oracle中有一個需求如下。 有兩個表有姓名,Dob,人的地址。在oracle中聯合查詢

表1

Personid name  dob  adrs 
1   Jack 05/06/1990 USA 
2   Jill 05/06/1985 UK 

表2

Personid name  dob  adrs 
1   Jack  
3   Smith 

我必須從兩個表中做出的聯合查詢,使得 如果在這兩個表名是相同的只有一行應該返回的結果一樣

Personid name  dob  adrs 
1   Jack 05/06/1990 USA 
2   Jill 05/06/1985 UK 
3   Smith 

Thanx提前。

回答

1

嘗試這樣,

SELECT personid, name, dob, adrs 
FROM table1 
UNION ALL 
SELECT personid, name, dob, adrs 
FROM table2 t2 
WHERE t2.personid NOT IN (SELECT personid 
          FROM tabl1); 

在這裏,我已經使用PERSONID代替NAME比較/黑白表。