【问题标题】:Left Outer Join - SQL2005左外连接 - SQL2005
【发布时间】:2010-03-31 22:44:08
【问题描述】:

我以为我知道的 SQL 已经够多了,但是我遇到了左外连接的问题。

我有一个费用明细记录,需要按部门和帐户代码链接到表。

查询看起来像这样:

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 为空。相反,我根本没有得到这个记录。

当没有匹配时,Left Outer Join 不应该返回左(详细)表吗?像我在这里使用多个条件时有什么不同吗?

谢谢

【问题讨论】:

  • 您的示例中的dept.account_code 来自哪里? dept 不在源表列表中?

标签: outer-join


【解决方案1】:

LEFT JOIN 操作符的行为应该符合您的预期。您的示例是整个查询吗?我问是因为有时我忘记了在 WHERE 子句中对连接表设置条件可能会导致此问题,除非我考虑 NULL 值。

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 2016-10-02
    • 1970-01-01
    • 2011-09-10
    • 2014-02-24
    • 1970-01-01
    • 2019-01-22
    • 2016-10-29
    • 2011-08-10
    相关资源
    最近更新 更多