`

关于 FROM a,b 和 a LEFT JOIN b on 的区别 ...

 
阅读更多
SELECT * FROM a,b WHERE a.id=b.id

和 SELECT * FROM a LEFT JOIN b ON a.id=b.id

这两种写法有什么区别么 ...?

给个通俗的解释吧.
例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a ,b where a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同样的也有right join
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4
 
分享到:
评论

相关推荐

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

    LEFT OUTER JOIN B ON (A.a1 = B.a2); ``` 结果将是: ``` a1 b1 c1 a2 b2 01 学 95 01 01 02 90 02 02 03 英 80 NULL NULL ``` 可以看到,所有的表`A`的记录都被返回了,并且对于表`A`中的`03`记录,因为表`B`中...

    join on 语句及扩展

    SELECT A.Field_K, A.Field_A, B.Field_B FROM A LEFT JOIN B ON A.Field_K = B.Field_K; ``` 结果将是: | Field_K | Field_A | Field_B | |---------|---------|---------| | a1 | b1 | c1 | | a2 | b2 | NULL | ...

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

    SELECT * FROM A LEFT JOIN B ON A.aID = B.bID ``` 输出结果展示了A表的所有记录,即使B表中没有对应的bID。对于B表中不存在的aID,bName列显示为NULL。 2. RIGHT JOIN(右连接) 与LEFT JOIN相反,RIGHT JOIN返回...

    left join right join inner join 区别和联系

    SELECT * FROM A LEFT JOIN B ON A.aID = B.bID; ``` 结果如下: | aID | aNum | bID | bName | | --- | --- | --- | --- | | 1 | a20050111 | 1 | 20060324012 | | 2 | a20050112 | 2 | 20060324023 | | 3 | a...

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

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

    SQL left join

    可以看到,Left Join返回了左表(table A)中的所有记录和右表(table B)中符合条件的记录。 三、SQL Left Join与Right Join、Inner Join的区别 SQL Left Join、Right Join和Inner Join都是用于组合表数据的查询...

    hive sql + left join 数据缺失

    LEFT JOIN TABLE_PARAMS b ON a.TBL_ID = b.TBL_ID AND b.PARAM_KEY = 'bucketing_version' LEFT JOIN DBS c ON a.DB_ID = c.DB_ID WHERE b.TBL_ID IS NULL AND c.NAME = 'dw'; ``` 2. **优化TEZ参数配置**: ...

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

    SELECT * FROM t_institution i LEFT OUTER JOIN t_teller t ON i.inst_no = t.inst_no WHERE i.inst_no = "5801" 右外连接(Right Outer Join) 右外连接是将右边表的全部行与左边表中的匹配行连接起来,例如: ...

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

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

    Left join优化规则的研究

    SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.d2 WHERE condition1 [AND conditionN]; ``` 若 `conditionK` 涉及到右表 `t2` 的列,并且不是 `t2.column IS NULL` 类型的条件,那么可以优化为 Inner Join: ```sql ...

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

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

    sql语句join中on和where的区别

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

    sql的left join和count应用

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

    Join on 连接

    SELECT A.*, B.* FROM B LEFT JOIN A ON A.ID = B.ID WHERE A.ID IS NULL ``` 在MySQL中,`JOIN`操作通常用于联接具有相关数据的多个表,以便在一个查询中获取全面的信息。`JOIN`的语法结构允许指定多个表以及...

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

    Dim leftJoin = (From l In leftTable _ Join r In rightTable On l.Key Equals r.Key Into gj = Group _ From r In gj.DefaultIfEmpty() Select New With {l.Key, l.Value, r.Key, r.Value}) Dim rightJoin = ...

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

    左连接(也称为左外连接,Left Outer Join)返回左表(在此例中为`A`表)的所有记录,即使这些记录在右表(`B`表)中没有匹配项。对于右表中的不匹配记录,在结果集中对应的列会显示为`NULL`。 **示例:** 使用同样...

    Hive查询sql left join exists

    LEFT JOIN hql_jointest_b b ON a.id = b.id; ``` 此查询将返回所有CS-1班的学生及其对应的考试成绩,如果没有成绩,`b.id`和`b.score`将显示为NULL。 LEFT SEMI JOIN(左半连接)则只返回左表中的记录,如果这些...

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

    总之,LEFT JOIN、RIGHT JOIN、INNER JOIN和OUTER JOIN是SQL语言中的核心部分,理解和熟练运用它们对于任何数据库开发人员都至关重要。通过不断的实践和学习,你可以更好地掌握这些JOIN类型,并在解决复杂数据查询...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    SELECT * FROM `xs` LEFT JOIN `cj` ON xs.id = cj.id 返回结果: id name id score 1 张三 1 96 2 李四 2 80 3 NULL 3 86 right join right join 又称右联接,是指从右表中选择所有记录,并从左表中选择匹配的...

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

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

Global site tag (gtag.js) - Google Analytics