`
eyejava
  • 浏览: 1268687 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

左连接left join 的空数据

    博客分类:
  • DB
SQL 
阅读更多
select
        T1.serialno,t1.dwmonth,t2.dwmonth,T1.balance,t2.balance as ReportItem
from
        receive_badloan T1 left join a_contract T2 on
        t1.dwmonth=t2.dwmonth and t2.dwmonth='2005/10/31' and
        t1.serialno = t2.serialno and
        t1.businesscurrency = t2.businesscurrency where operateorg like '1011%'.
上面这句sql的要求是:最终显示的余额(balance)来自t2,serialno,dwmonth,businesscurrency是t2的三个主键。看起来这样写好像没问题,但是查询结果如下:
serialno                   t1.dwmonth       t2.dwmonth       t1.balance     reportItem
111998060004        2005-09-30                                  303697.6       
111998060004        2005-10-31        2005-10-31        278697.6        278697.6
,t2.balance有为空的值。查看原因发现 t1.dwmonth=t2.dwmonth为多余的条件,因为现在的要求是查询dwmonth为2005/10/31的余额,如果t1.dwmonth=t2.dwmonth了,则2005-09-30去关联t2 中 t2.dwmonth='2005/10/31'的数据当然 没得关联所以,t2.balance为空。
正确sql应该为:
select
        T1.serialno,t1.dwmonth,t2.dwmonth,T1.balance,t2.balance as ReportItem
from
        receive_badloan T1 left join a_contract T2 on
        t2.dwmonth='2005/10/31' and
        t1.serialno = t2.serialno and
        t1.businesscurrency = t2.businesscurrency where operateorg like '1011%'
正确结果如下:
111998060004        2005-09-30        2005-10-31        303697.6        278697.6
111998060004        2005-10-31        2005-10-31        278697.6        278697.6
左连接并非主键全部要等值起来!
分享到:
评论

相关推荐

    inner join、 left join 、right join、 outer join之间的区别

    #### LEFT JOIN (左连接) `LEFT JOIN`也称为`LEFT OUTER JOIN`,它会返回所有左表(在这个例子中是表`A`)的记录,即使右表(表`B`)中没有匹配的记录。如果右表中没有匹配项,则结果集中的这些列将包含`NULL`值。 ...

    SQL语句left join/right join/inner join 的用法比较

    在SQL查询中,JOIN操作是连接两个或多个表的关键部分,用于从这些表中提取相关数据。本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN...

    Linq to datable(Left join right join full join)实例

    总之,Linq to DataTable提供的左连接、右连接和全连接功能,使得开发者能够更加灵活地处理和合并存储在DataTable中的数据,这对于数据处理和分析任务至关重要。通过理解和实践VB2010中的这些示例,你可以提升在.NET...

    from 多张表 等于 left join 其他表.

    标题与描述中的“from多张表等于left join其他表”主要涉及的是SQL查询语句中两种不同的连接方式:内连接(通常在FROM子句后直接使用WHERE子句实现)和左连接(LEFT JOIN)。这两种连接方式在处理多表查询时有着不同...

    Left join优化规则的研究

    1. 左连接(Left Join)的基本概念 左连接返回所有左表(前一个表)的记录,即使在右表(后一个表)中没有匹配的记录。如果右表没有匹配项,结果将是 NULL。因此,Left Join 在处理关联数据时提供了更全面的视图。 ...

    SQL语句inner join,left join ,right join连接的不同之处

    根据连接方式的不同,可以分为多种类型,包括内连接(Inner Join)、左连接(Left Join)以及右连接(Right Join)。本文将详细探讨这三种连接方式的区别,并通过具体的例子来解释它们的应用场景。 ### 内连接...

    left join right join inner join 区别和联系

    左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)是三种最基本的连接类型。在本节中,我们将详细介绍左连接、右连接和内连接的区别和联系。 左连接(LEFT JOIN) 左连接返回左表中的所有行,右表...

    SQL中的left outer join,inner join,right outer join用法详解

    2. 左外连接(Left Outer Join):包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行。 3. 右外连接(Right Outer Join):包含右边表的全部行(不管左边的表中是否存在与它们...

    SQL left join

    SQL Left Join也称为左外连接,它可以将左表中的所有记录与右表中的记录进行组合,返回左表中的所有记录和右表中符合条件的记录。如果右表中没有符合条件的记录,将返回NULL。 Left Join的基本语法为: ```sql ...

    SQL 连接 JOIN 例解左连接,右连接,全连接,内连接,交叉连接,自连接

    本文将详细介绍六种主要类型的 JOIN:左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)、内连接(INNER JOIN)、交叉连接(CROSS JOIN)以及自连接(SELF JOIN)。通过实例讲解每种连接的特点和应用...

    关于sql的left join,right join,inner join,outerjoin

    本篇文章将深入探讨四种基本的JOIN类型:LEFT JOIN(左连接)、RIGHT JOIN(右连接)、INNER JOIN(内连接)以及OUTER JOIN(外连接)。我们将详细解释这些概念,它们的工作原理以及在实际数据库操作中的应用。 1. ...

    sql的left join和count应用

    `LEFT JOIN` 是一种联接(JOIN)类型,它返回所有左表(在本例中是 `TPL` 表)的记录,即使在右表(同样也是 `TPL` 表)中没有匹配的记录。如果在右表中没有找到匹配,结果将用 `NULL` 填充右边列的值。 接着,`...

    MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程

    LEFT JOIN,也称为左连接,它的基本语法是:`FROM table1 LEFT JOIN table2 ON condition...`。这种连接方式会返回左表(table1)的所有记录,即使在右表(table2)中没有找到匹配的记录。对于那些在右表中找不到...

    SQL表连接查询(inner join、full join、left join、right join)1

    在SQL中,主要有四种类型的连接查询:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。下面将详细解释这四种连接方式。 1. 内连接(INNER JOIN): 内连接返回两个表中...

    left join 过滤条件写在on后面和写在where 后面的区别

    其中,`LEFT JOIN`是一种常用的连接类型,它返回左表的所有记录以及右表中匹配的记录。如果不匹配,则结果中的右表部分为NULL值。本文将重点讨论`LEFT JOIN`中过滤条件放置位置的不同——放在`ON`子句后与放在`WHERE...

    Oracle 左连接、右连接

    本篇文章将深入探讨Oracle中的左连接(LEFT JOIN)和右连接(RIGHT JOIN),这两种连接方式都是为了在不同表之间建立联系,特别是在数据不完全匹配的情况下。 首先,我们来看一下左连接(LEFT JOIN)。左连接返回左...

    SQL之左连接、右连接和全连接.doc

    左连接(LEFT JOIN) 左连接也称为左外连接,用于从左侧表中检索记录,返回左侧表中的所有记录,并将右侧表中的匹配记录附加到左侧表中。如果右侧表中没有匹配记录,将返回空值。左连接的基本语法为: SELECT * ...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    inner join、left join 和 right join 是 Mysql 中三种最常用的连接查询方式。 inner join inner join 又称等值连接,是指从两个表中选择公共列的记录。只有当两个表中的列值相等时,才会返回结果集。例如: ...

    (Left join , Right Join, Inner Join)用法详解

    本文将详细介绍三种常见的连接类型:Left Join、Right Join 和 Inner Join,并通过具体的例子来帮助大家理解这些连接的具体应用。 #### 二、Left Join Left Join(也称为 Left Outer Join)是从左表(即第一个被...

Global site tag (gtag.js) - Google Analytics