2010-03-31 202 views
0

我以爲我知道足夠的SQL,但我遇到了左外連接的問題。左外連接 - SQL2005

我有一個費用明細記錄,需要通過dept和account_code鏈接到一張表。

查詢看起來是這樣的:

SELECT Detail.Spend, Budget.BudgetAmt 
FROM detail left outer join budget 
    ON detail.dept = budget.dept 
    AND dept.account_code = budget.account_code 

這隻要有一個完全匹配的連接條件紀錄的偉大工程。但有時候,沒有匹配的預算項目。我想從細節表中取回Detail.Spend,其中包含budgetAmt的空值。相反,我根本沒有得到這個記錄。

是不是左外連接當沒有匹配時應該返回左(細節)表?當我使用多個標準時,有什麼不同嗎?

感謝

+0

'dept.account_code'來自哪裏?部門不在源表的列表中? – 2010-03-31 22:59:12

回答

0

的LEFT JOIN操作應該表現爲您期望。你的例子是整個查詢嗎?我問,因爲有時我會忘記,在WHERE子句中對連接表添加一個條件很可能會導致這個問題,除非我考慮NULL值。