2011-01-21 96 views
1

如何連接到表,如果我更喜歡只從第二個表中獲取記錄?如果不存在第二個表,請記錄第一個表。加入兩個表,忽略第一個表中的記錄(如果存在於第二個表中)

Table A   Table B   Result 
pid,name,type pid,name,type pid,name,type 
1,Anna,null  1,Anna,100  "1,Anna,100" 
2,Bea,null  -    "2,Bea,Null" 
3,Caro,null  3,Caro,100  "3,Caro,100"  
       3,Caro,200  "3,Caro,200" 

編輯:我試圖改進我的示例表。

+1

這絕不是你想知道的。你的A和B的列是什麼?在你的例子中,來自A的記錄在什麼意義上被忽略? –

+0

你會在表A中使用Caro,而在tableB中沒有行嗎? – gbn

+0

人員既可以是小組的成員,也可以是小組的成員。他們可能在一個組中擁有多個成員資格。現在,我需要一個與組關聯的所有人的列表。但是,如果該人擁有多個成員資格,則同一個人只有多個。 –

回答

5
SELECT 
    ISNULL(A.column1, B.column1), --perhaps name 
    ISNULL(A.column2, B.column2) --perhaps id 
FROM 
    TableA A 
    FULL OUTER JOIN 
    TableB B ON A.column1 = B.column1 --assume name is matching column 

編輯,我假設你有沒有排TableA中,和 「戴維,6」 TableB中。否則,Cyber​​nate的左連接已經足夠了

+0

不是很激動我需要什麼,但是你把我放在正確的道路上。謝謝! –

3

你可以使用左連接,我假設TableB的列名分別是Name和ID。

SELECT tableA.Name, tableB.Id 
    FROM tableA LEFT JOIN tableB 
    ON tableA.Name = tableB.Name 
相關問題