2011-01-21 16 views
1

2番目のテーブルからのみレコードを取得する場合、テーブルに結合する方法はありますか?秒がない場合は、最初のテーブルを記録します。2つのテーブルを結合し、第1のテーブルのレコードを2番目に存在する場合は無視します。

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、テーブルBにRowはありませんか? – 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で何行を持っていないだろうと仮定している、とテーブルBの "デーブ、6"。そうでなければ、Cyber​​nateの左結合で十分です

+0

私が必要としていたことは恥ずかしそうではありませんが、あなたは私を正しい道に乗せています。ありがとう! –

3

左結合を使うことができますが、TableBの列名はそれぞれ名前とIDであると仮定します。

SELECT tableA.Name, tableB.Id 
    FROM tableA LEFT JOIN tableB 
    ON tableA.Name = tableB.Name 
関連する問題