2014-01-10 50 views
1

我有兩個表:返回NULL,如果不能參加

Providers

---------------------------- 
| ID | NAME    | 
---------------------------- 
| 1 | Dr. Brown   | 
---------------------------- 
| 2 | Dr. Smith   | 
---------------------------- 
| 3 | Nurse Jones   | 
---------------------------- 
| 4 | Stan Lee, NP  | 
---------------------------- 

Provider_Tax_ID 
---------------------------- 
| ID | TAX_ID    | 
---------------------------- 
| 2 | 79465654   | 
---------------------------- 
| 3 | 32613322   | 
---------------------------- 

當試圖匹配Providers他們的稅務編號,我想拉的所有供應商,包括那些不能加入到Provider_Tax_ID

所以我的結果會是什麼樣子:

-------------------------------------------------- 
| ID | NAME    | TAX_ID    | 
-------------------------------------------------- 
| 1 | Dr. Brown   | NULL    | 
-------------------------------------------------- 
| 2 | Dr. Smith   | 79465654   | 
-------------------------------------------------- 
| 3 | Nurse Jones   | 32613322   | 
-------------------------------------------------- 
| 4 | Stan Lee, NP  | NULL    | 
-------------------------------------------------- 

我已經試過這樣的事情,但我沒有得到任何結果:

SELECT 
    p.ID, 
    p.NAME, 
    t.TAX_ID 
FROM 
    providers p 
     FULL OUTER JOIN provider_tax_id t on p.ID = t.ID 
+3

儘管'left outer join'在你的情況下更有意義,那麼'full outer join'應該返回你正在尋找的東西。它回來了什麼? –

回答

2

你只需要一個左(外)加入:

SELECT 
    p.ID, 
    p.NAME, 
    t.TAX_ID 
FROM 
    providers p 
     LEFT OUTER JOIN provider_tax_id t on p.ID = t.ID