2016-07-30 35 views
1

我的表加入不同的表,不同的條件

Renovationinfo

BlockCode|arsehRow|SakhtemanRow 
------------------------------- 
1  |1  |00   
2  |2  |00   
3  |3  |01   

ArsehMalk

BlockCode|arsehRow|name 
------------------------ 
1  |1  |a   
2  |2  |b  

ApartmanMalk

BlockCode|arsehRow|SakhtemanRow|name 
------------------------------------------------- 
3  |3  |01   |d  

我想加盟RenovationinfoArsehMalk如果SakhtemanRow=='00'

ApartmanMalk如果SakhtemanRow<>'00'

我寫此查詢加入Renovationinfo但這並不返回任何東西。

Select name 
From 
    Renovationinfo r 
Left Join 
    ArsehMalk m1 On m1.BlockCode = r.BlockCode And 
    m1.arsehRow = r.arsehRow And r.SakhtemanRow = '00' 
Left Join 
    ApartmanMalk m2 On m2.BlockCode = r.BlockCode And 
    m2.arsehRow = r.arsehRow And 
    m2.SakhtemanRow=r.SakhtemanRow And 
    r.SakhtemanRow<>'00' 

我希望得到這個輸出

BlockCode|arsehRow|name 
------------------------------- 
1  |1  |a   
2  |2  |b   
3  |3  |d 
+1

能否請您分享您想獲得該樣本的輸出?這將使問題更容易理解。 – Mureinik

+1

我沒有看到任何錯誤的查詢。你確定這不是數據不好嗎? – FrankerZ

回答

3

你的查詢有一個根本問題:name是模糊的。你可以解決這個問題爲:

select coalesce(m1.name, m2.name) as name 

因爲要附加列:

select r.BlockCode, r.arehRow, coalesce(m1.name, m2.name) as name