2015-09-09 50 views
-1

我有表TableA,其中有100行。它有一列loanid,它可能有重複。加入不同表格的列而不復制

我需要join與其他表TableB,它有一列loanid,加入。

但是,loanidtableB可能或可能不在tableA

所以,如果我把一個right joinleft join,我希望得到的結果是一樣的100

由於存在匹配和不匹配的兩個表loanid,還有就是不100行結果的機會,如果我做了right joinleft join

回答

2

從你描述你想要一個left join

select . . . 
from tablea a left join 
    tableb b 
    on a.loanid = b.loanid; 

這與tableb所有匹配的行沿着保持每一行中tablea。從您的描述中,tableb沒有重複項,因此這將使所有內容都保留在tablea中,且沒有重複項。

如果tableb有重複的,你想一個任意行,那麼你可以使用outer apply

select . . . 
from tablea a outer apply 
    (select top 1 b.* 
     from tableb b 
     where a.loanid = b.loanid 
    ) b; 
+0

我嘗試了第一種方法,但我沒有得到100行,我讓123行 – SmartestVEGA

+0

第二個是完美的工作......哇! – SmartestVEGA

+0

但是我會得到tableb中相應的列值以匹配tableid中的loanid嗎? – SmartestVEGA