2012-10-04 108 views
0

也許我的描述是有點飄渺:) 我想要做的兩個表外連接,並選擇記錄,其中一個領域有一定的價值或爲空 我原來的概念是如何從連接表特定值或空選擇字段中

select A.x,B.y 
from A 
left outer join B 
    on A.id= B.a_id 
where b.y ='abc' 
    or b.y is null 

但後來我意識到它的B表採取通過不加入
是任何簡單的解決辦法我可怎麼辦呢?

我需要的是選擇行,其中通過名爲 'abc' 或空,即:
(1, 'ABC')
(2,空)

,而我的查詢給我的功能內有結果加入

(1, 'ABC')
忽略了其他項

+1

究竟什麼是你的問題?你想達到什麼目的? – LittleBobbyTables

回答

1

是否

select A.x,B.y from A left outer join B on A.id= B.a_id and (b.y ='abc' or b.y is null) 

閱讀評論只是刪除左外後

0

這是你想要的嗎?

select A.x,b.y 
    from A 
    left outer join B 
     on A.id= B.a_id and 
     b.y ='abc' 

如果您在您的評論說,你得到內部聯接的結果,而不是你的預期外連接,這是因爲你的WHERE子句中引用你的外表。 您需要將參考移動到連接。

+0

你應該用'=' – Lamak

+0

nope來更改'==',即使它是空的,我也想從字段B中獲得字段y,而我使用'=='而不是'='只是打字錯誤,即時通訊使用比sql更多的java,所以我更習慣==聲明:) – user902383

+2

好吧,你說問題是「它從B表中取出不是來自加入」如果你想從B表中得到By,那麼你的問題是什麼? – Beth

相關問題