我有一個查詢在SQL Server中,我正在做多個左連接。有一次,我去:左加入返回最多一行爲一對多的關係
...LEFT JOIN foo on a.id = foo.id AND foo.code = 100
最多在查詢中加入語句,a.id
不重複;每a.id
只有1行。但是表a
和foo
有一對多的關係,所以在該聯接語句之後,我得到了多個具有相同a.id
的行。
表foo
將始終有多個記錄,其中foo.id = a.id
,但它可能會或可能不會有記錄,其中foo.id = a.id AND foo.code = 100
。如果是這樣,那麼只會有一個這樣的記錄。所以,我想在最終的查詢結果中看到每a.id
只有一行;如果foo
有一個記錄,其中f.id = a.id and f.code = 100
,那麼我想從該記錄中看到f.date1
和f.date2
的日期值。如果foo
沒有這樣的記錄,那麼我只想看到f.date1
和f.date2
的NULL值。從評論
編輯:
原來,表foo
實際上可以有多個行,其中a.id = foo.id and foo.code = 100
。
你會得到什麼,這不起作用?它應該基於你在那裏工作。 –
也許做 選擇案例當foo.id是NULL那麼NULL否則f.date1 END作爲日期1 隨着左連接,所以當行不匹配你得到一個空的date1和做同樣的date2 –
請提供樣本數據和期望的結果。你的'join'看起來不錯 - 只需從'foo'選擇你需要的字段... – sgeddes