2010-03-31 159 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值。