`
BabyDuncan
  • 浏览: 585678 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql中join,left join,right join 的区别

阅读更多
先看例子:
首先是join
select vend_name ,prod_price,prod_name from products join vendors on vendors.vend_id = products.vend_id;

结果
+-----------------+------------+---------------------+
| vend_name       | prod_price | prod_name           |
+-----------------+------------+---------------------+
| Bears R Us      | 5.99       | 8 inch teddy bear   |
| Bears R Us      | 8.99       | 12 inch teddy bear  |
| Bears R Us      | 11.99      | 18 inch teddy bear  |
| Doll House Inc. | 3.49       | Fish bean bag toy   |
| Doll House Inc. | 3.49       | Bird bean bag toy   |
| Doll House Inc. | 3.49       | Rabbit bean bag toy |
| Doll House Inc. | 4.99       | Raggedy Ann         |
| Fun and Games   | 9.49       | King doll           |
| Fun and Games   | 9.49       | Queen doll          |
+-----------------+------------+---------------------+

left join
select vend_name ,prod_price,prod_name from products left 
join vendors on vendors.vend_id = products.vend_id;

结果
+-----------------+------------+---------------------+
| vend_name       | prod_price | prod_name           |
+-----------------+------------+---------------------+
| Doll House Inc. | 3.49       | Fish bean bag toy   |
| Doll House Inc. | 3.49       | Bird bean bag toy   |
| Doll House Inc. | 3.49       | Rabbit bean bag toy |
| Bears R Us      | 5.99       | 8 inch teddy bear   |
| Bears R Us      | 8.99       | 12 inch teddy bear  |
| Bears R Us      | 11.99      | 18 inch teddy bear  |
| Doll House Inc. | 4.99       | Raggedy Ann         |
| Fun and Games   | 9.49       | King doll           |
| Fun and Games   | 9.49       | Queen doll          |
+-----------------+------------+---------------------+

right join的情况呢
select vend_name ,prod_price,prod_name from products right
 join vendors on vendors.vend_id = products.vend_id;

+-----------------+------------+---------------------+
| vend_name       | prod_price | prod_name           |
+-----------------+------------+---------------------+
| Bear Emporium   | NULL       | NULL                |
| Bears R Us      | 5.99       | 8 inch teddy bear   |
| Bears R Us      | 8.99       | 12 inch teddy bear  |
| Bears R Us      | 11.99      | 18 inch teddy bear  |
| Doll House Inc. | 3.49       | Fish bean bag toy   |
| Doll House Inc. | 3.49       | Bird bean bag toy   |
| Doll House Inc. | 3.49       | Rabbit bean bag toy |
| Doll House Inc. | 4.99       | Raggedy Ann         |
| Fun and Games   | 9.49       | King doll           |
| Fun and Games   | 9.49       | Queen doll          |
| Furball Inc.    | NULL       | NULL                |
| Jouets et ours  | NULL       | NULL                |
+-----------------+------------+---------------------+

总结:join 的结果会和left join或者right join的其一的结果一样,顺序不同,不知道为什么呢,left join 左联结优先考虑左表,即products ,得到的结果行数和products表的行数一样,right join 右联结,有线考虑右表,即vendors ,得到的结果和右表vendors的行数一样,无法匹配的时候用NULL值填充。
分享到:
评论

相关推荐

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

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

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

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

    mysql Join使用以及优化

    INNER JOIN仅返回两个表中匹配的记录,而LEFT JOIN、RIGHT JOIN和FULL JOIN分别返回左表、右表以及两个表中所有的记录,即使某些记录在另一表中没有匹配的记录也会返回。 接下来,关于DBA不让使用Join的问题,其...

    超详细mysql left join,right join,inner join用法分析

    MySQL中的JOIN操作是数据库查询中非常重要的一个概念,主要用于在两个或多个表之间建立关联,以便从这些表中检索所需的数据。在这个超详细的分析中,我们将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法。 1....

    MySQL JOIN 语法说明与 INNER JOIN 语法用法实例.docx

    本文档详细介绍了 MySQL 中的 JOIN 语法,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 等,并提供了实际的实例来说明 JOIN 的用法。 首先,MySQL 的 JOIN 语法用于根据两个或多个表中的字段之间的关系,从...

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

    在MySQL中,优化LEFT JOIN 的关键是确保表的读取顺序和依赖性,表B应依赖于表A及所有A依赖的表。WHERE和HAVING子句通常与JOIN条件一起优化,但如果WHERE条件排除了LEFT JOIN生成的NULL行,可以转换为等值JOIN,从而...

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

    MySQL中的LEFT JOIN是一种关联多个表的方法,用于返回左表的所有记录以及右表匹配的记录。在某些场景下,我们可能需要连接多个表来获取全面的数据信息。本篇文章将深入探讨MySQL多个LEFT JOIN连接查询的用法,通过...

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

    本文将深入探讨LEFT JOIN和RIGHT JOIN两种特殊的连接方式,帮助初学者理解这两种连接的语法、用法及其在实际操作中的应用。 LEFT JOIN,也称为左连接,它的基本语法是:`FROM table1 LEFT JOIN table2 ON condition...

    解析mysql left( right ) join使用on与where筛选的差异

    MySQL中的LEFT JOIN和RIGHT JOIN是进行表连接查询的两种常见方式,它们用于在两个表之间根据一定的条件进行数据匹配。LEFT JOIN称为左连接,它会返回左表(即第一个表)的所有记录,以及右表(即第二个表)匹配的...

    MySQL Left JOIN时指定NULL列返回特定值详解

    在SQL查询中,LEFT JOIN操作用于连接两个或更多表,并保留左表(即第一个表)的所有记录,即使右表没有匹配的记录。当右表的某些字段在LEFT JOIN后为NULL时,我们可以利用函数来将这些NULL值替换为特定值,如0或其他...

    MySQL 8.0.18 Hash Join不支持left/right join左右连接问题

    然而,在MySQL 8.0.18 版本中,值得注意的是Hash Join 不支持左连接(LEFT JOIN)和右连接(RIGHT JOIN)。这意味着,如果你的查询语句中包含了这些类型的连接,MySQL 将不会使用Hash Join,而是可能回退到其他连接...

    MySQL left join操作中on和where放置条件的区别介绍

    总结一下,`ON` 和 `WHERE` 在 `LEFT JOIN` 中的主要区别在于: 1. `ON` 用于在生成临时表时定义连接条件,无论条件是否满足,都会返回左表的所有行。 2. `WHERE` 在临时表生成后进行过滤,如果它包含了连接条件,...

    mysql join所有方法总结

    在MySQL中,主要的Join方法包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、SELF JOIN以及CROSS JOIN等。 INNER JOIN(内连接):是所有Join中最常见的类型。使用INNER JOIN后,只有两个表中能够相互匹配的记录...

    mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    MySQL中的`NOT IN`, `LEFT JOIN`, `IS NULL`, 和 `NOT EXISTS` 是四种不同的SQL查询方式,它们在特定情况下可以实现相似的功能,但实际执行效率可能会有很大差异。本文主要探讨这四种方法在处理大数据量时的性能表现...

    MySQL JOIN 工作原理浅析1

    在 MySQL 中,JOIN 连接可以分为三种类型:LEFT JOIN、RIGHT JOIN 和 INNER JOIN。 * LEFT JOIN:左连接,将驱动表 R 中的每一条记录与被驱动表 S 中的每一条记录进行连接。 * RIGHT JOIN:右连接,将被驱动表 S 中...

Global site tag (gtag.js) - Google Analytics