`
nydqy
  • 浏览: 37419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

SQL 的LEFT JOIN 和WHERE的用法分析

SQL 
阅读更多

这段时间对SQL的操作挺频繁的,先记下这个方法了:

create table t1(id int, feild int);
insert into t1 values(1 , 1);
insert into t1 values(1 , 2);
insert into t1 values(1 , 3);
insert into t1 values(1 , 4);
insert into t1 values(2 , 1);
insert into t1 values(2 , 2);
create table t2(id int, feild int);
insert into t2 values(1 , 1);
insert into t2 values(1 , 2);
insert into t2 values(1 , 5);
insert into t2 values(1 , 6);
insert into t2 values(2 , 1);
insert into t2 values(2 , 3);

 

select t1.*,t2.* from t1 left join t2 on t1.id=t2.id   --取t1表的第一行,扫瞄t2表,按条件做对比,如果满足条件,就加入返回结果表.
                                                                      然后取t1表的第二行,扫瞄t2表,按条件做对比,如果满足条件,就加入返回结果表.
                                                                      重复以上过程,直到t1表扫描结束.

select t1.*,t2.* from t1 left join t2 on t1.id=t2.id  and t1.feild=1  --给左表加条件的时候,左表满足条件的,按上面的过程返回值,左表不满足条件的,直接输出,右表的列补null
                                                                                              1 1 1 1
                                                                                              1 1 1 2
                                                                                              1 1 1 5
                                                                                              1 1 1 6
                                                                                              2 1 2 1
                                                                                              2 1 2 3                  
                                                                                              1 2 NULL NULL
                                                                                              1 3 NULL NULL
                                                                                              1 4 NULL NULL
                                                                                              2 2 NULL NULL


select t1.*,t2.* from t1 left join t2 on t1.id=t2.id  where t1.feild=1     先执行where后连接查询


                                                                                    执行where后表为  1 , 1
                                                                                                            2 , 1
                                                                                          用它来left join t2.
 

 --下面三条语句查询结果是一样的,当为右表加条件的时候,可以把left join 改为inner jin, 因为inner join比left join 要快!

select t1.*,t2.* from t1 left join t2 on t1.id=t2.id  and t2.feild=1
select t1.*,t2.* from t1 left join t2 on t1.id=t2.id  where t2.feild=1
select t1.*,t2.* from t1 inner join t2 on t1.id=t2.id  and t2.feild=1

1
1
分享到:
评论

相关推荐

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

    SQL 中的左外连接、内连接、右外连接用法详解 SQL 中的连接操作是数据库管理系统中最基本的操作之一,它能够将多个表中的数据结合起来,生成一个新的结果集。本文将对 SQL 中的左外连接、内连接、右外连接进行详细...

    sql的left join和count应用

    在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...

    left_join_on_and与left_join_on_where的区别

    left_join_on_and与left_join_on_where的区别

    hive sql + left join 数据缺失

    ### Hive SQL Left Join 数据缺失问题解析 #### 一、问题背景 在大数据处理场景中,Hive 是一种广泛使用的工具,用于对存储在 Hadoop 文件系统中的数据进行数据汇总、查询和分析。随着Hive版本的不断更新,部分用户...

    sql语句中join的用法

    ### SQL语句中JOIN的用法详解 在SQL查询语言中,`JOIN`是一个非常重要的概念,它允许我们从两个或多个表中提取数据。通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。下面我们将详细介绍几...

    sql中的left join及on、where条件关键字的区别详解

    在SQL查询中,JOIN操作是连接两个或多个表格的关键字,用于从多个表格中合并数据。LEFT JOIN(在某些数据库中称为LEFT ...理解这三个关键字的区别和用法是SQL查询中的基本技能,对于处理复杂的数据关联问题至关重要。

    Hive查询sql left join exists

    总的来说,理解和熟练运用LEFT JOIN、LEFT SEMI JOIN以及EXISTS子句是Hive SQL查询中的关键技能,它们在大数据分析中扮演着重要角色,帮助用户从海量数据中提取有价值的信息。根据实际需求选择合适的连接类型,能够...

    sql语句join中on和where的区别

    ### SQL语句JOIN中ON和WHERE的区别 #### 引言 在SQL中,JOIN操作用于合并两个或多个表中的行。正确理解`ON`和`WHERE`子句的区别对于高效地编写查询至关重要。本文将详细解释这两者的不同,并通过具体的例子来加深...

    LINQ to SQL语句之Join和Order By

    [t0].[Discontinued] FROM [dbo].[Products] AS [t0] LEFT OUTER JOIN [dbo].[Suppliers] AS [t1] ON [t1].[SupplierID] = [t0].[SupplierID] WHERE ([t1].[Country] = @p0) AND ([t0].[UnitsInStock] = @p1) -- @p0...

    mysql多个left join连接查询用法分析

    本篇文章将深入探讨MySQL多个LEFT JOIN连接查询的用法,通过实例来解析其操作技巧和注意事项。 首先,LEFT JOIN的关键在于它会保留左表的所有记录,即使在右表中没有匹配的记录。如果在右表中找不到匹配的记录,...

    SQL _join on 和where的执行顺序1

    对于LEFT JOIN、RIGHT JOIN和FULL JOIN,ON条件的过滤是在生成中间表时进行的,而WHERE是在中间表生成后应用。而对于INNER JOIN,由于它只返回匹配的记录,所以ON和WHERE在功能上是等价的。理解这些概念对于优化SQL...

    深入Oracle的left join中on和where的区别详解

    当我们涉及到LEFT JOIN时,可能会遇到使用ON和WHERE子句的情况,两者虽然都可以用来指定条件,但在语义上有所区别。 首先,ON子句是在生成联接结果集(临时表)时应用的条件。无论ON条件是否为真,都会返回左表的...

    SQL语句优化之JOIN和LEFT JOIN 和 RIGHT JOIN语句的优化

    SQL语句优化对于大型数据库系统至关重要,特别是在涉及多表查询时,JOIN、LEFT JOIN 和 RIGHT JOIN 的高效运用能显著提升查询速度。以下将详细探讨这些JOIN类型以及相关的优化策略。 JOIN原理: JOIN操作实际上是...

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

    ### left join 过滤条件写在on后面和写在where 后面的区别 在SQL查询语句中,连接(JOIN)是一种非常重要的操作,用于从两个或多个表中获取数据。其中,`LEFT JOIN`是一种常用的连接类型,它返回左表的所有记录以及...

    Left join优化规则的研究

    在数据库查询优化中,Left Join 的处理是至关重要的,因为它涉及到数据的完整性和性能效率。对于应用开发人员而言,理解 Left Join 的优化规则能够提高查询效率,尤其是在某些数据库系统不支持自动转化 Left Join 为...

    SQL 之JOIN 用法完全版.rar

    在这个“SQL之JOIN用法完全版”中,我们将深入探讨JOIN的不同类型及其应用。 1. **INNER JOIN**: INNER JOIN返回两个表中匹配的行。这意味着只有当第一个表中的某行与第二个表中的某行在指定的列上具有相同的值时...

    sql语句中join的用法和效率说明.doc

    ### SQL语句中JOIN的用法与效率说明 #### 一、引言 在数据库管理与应用程序开发过程中,数据查询的效率对系统性能至关重要。在众多的查询操作中,JOIN作为连接不同表的一种手段,其使用频率非常高。本文将详细介绍...

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

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

    SQL 语法 SQL 总结 SQL教程

    SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL ...

Global site tag (gtag.js) - Google Analytics