2013-03-15 77 views
0

存在我有兩個表:從其他表選擇行如果沒有在當前的表

表1

id name  qty 
1 Tedd  6 
2 Jim  7 
3 Sally  8 
4 Victoria 1 

表2

id name  qty 
1 Tedd  2 
2 Jim  2 
3 Sally  2 
4 Victoria 1 
5 Alex  9 

,我需要選擇所有從表1的行。但是,如果Table1中存在Table1中不存在的行,則需要將其包含在結果集中。所以,到最後,我的查詢應該返回此:

id name  qty 
1 Tedd  6 
2 Jim  7 
3 Sally  8 
4 Victoria 1 
5 Alex  9 

有沒有一種方法,我可以做到這一點?謝謝。

回答

2

您可以使用FULL OUTER JOIN

select 
    coalesce(t1.id, t2.id) id, 
    coalesce(t1.name, t2.name) name, 
    coalesce(t1.qty, t2.id) qty 
from table1 t1 
full outer join table2 t2 
    on t1.id = t2.id 

SQL Fiddle with Demo

+0

完美,謝謝! – 2013-03-18 16:46:40

相關問題