`
xiaoboss
  • 浏览: 648182 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MySQL left join right join inner join 区别

阅读更多

请看下面的语句

注意比较06 和07的显示结果,自己测试的 语法没有错误

-- left join , right join ,inner join 实验


CREATE DATABASE if NOT EXISTS join_test;
use join_test;
DROP TABLE If EXISTS tbl_a;
create table tbl_a (
id int(11) auto_increment primary key,
name varchar(255),
email varchar(255)
);

DROP TABLE If EXISTS `tbl_b`;
create table `tbl_b`(
`id` int(11) auto_increment primary key,
`name` varchar(255),
`email` varchar(255)
);
use join_test;
-- inset into tbl_a
insert into tbl_a values(1,'a_name_001','a_email_001');
insert into tbl_a values(2,'a_name_002','a_email_002');
insert into tbl_a values(3,'a_name_003','a_email_003');
insert into tbl_a values(4,'a_name_004','a_email_004');
insert into tbl_a values(5,'a_name_005','a_email_005');
insert into tbl_a values(7,'a_name_007','a_email_007');

-- insert into tbl_b
insert into tbl_b values(1,'b_name_001','b_email_001');
insert into tbl_b values(2,'b_name_002','b_email_002');
insert into tbl_b values(3,'b_name_003','b_email_003');
insert into tbl_b values(4,'b_name_004','b_email_004');
insert into tbl_b values(5,'b_name_005','b_email_005');
insert into tbl_b values(6,'b_name_006','b_email_006');

-- left join
select * from tbl_a left join tbl_b on tbl_a.id=tbl_b.id;

查询结果:

id name email id name email 1 1 2 2 3 3 4 4 5 5 7
a_name_001 a_email_001b_name_001 b_email_001
a_name_002 a_email_002b_name_002 b_email_002
a_name_003 a_email_003b_name_003 b_email_003
a_name_004 a_email_004b_name_004 b_email_004
a_name_005 a_email_005b_name_005 b_email_005
a_name_007 a_email_007




-- right join
select * from tbl_a right join tbl_b on tbl_a.id=tbl_b.id;
查询结果:

id name email id name email 1 1 2 2 3 3 4 4 5 5 6
a_name_001 a_email_001b_name_001 b_email_001
a_name_002 a_email_002b_name_002 b_email_002
a_name_003 a_email_003b_name_003 b_email_003
a_name_004 a_email_004b_name_004 b_email_004
a_name_005 a_email_005b_name_005 b_email_005
b_name_006 b_email_006




-- inner join
select * from tbl_a inner join tbl_b on tbl_a.id=tbl_b.id
查询结果:

id name email id name email 1 1 2 2 3 3 4 4 5 5
a_name_001 a_email_001b_name_001 b_email_001
a_name_002 a_email_002b_name_002 b_email_002
a_name_003 a_email_003b_name_003 b_email_003
a_name_004 a_email_004b_name_004 b_email_004
a_name_005 a_email_005b_name_005 b_email_005
分享到:
评论

相关推荐

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

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

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    Mysql 之 inner join、left join、right join 详解 Mysql 中的连接查询是指从多个表中检索数据,并将它们组合成一个结果集。inner join、left join 和 right join 是 Mysql 中三种最常用的连接查询方式。 inner ...

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

    在这个超详细的分析中,我们将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法。 1. LEFT JOIN(左连接) LEFT JOIN返回所有左表(在本例中为表A)的记录,即使在右表(表B)中没有匹配的记录。如果右表中没有...

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

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

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

    1. 选择正确的JOIN类型:LEFT JOIN、RIGHT JOIN和INNER JOIN各有适用场景,根据需求选择最合适的。 2. 避免全表扫描:通过索引优化,减少JOIN过程中的全表扫描。 3. 使用索引:为JOIN条件创建索引,可以大大提高JOIN...

    mysql Join使用以及优化

    基本的Join类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN等。 INNER JOIN仅返回两个表中匹配的记录,而LEFT JOIN、RIGHT JOIN和FULL JOIN分别返回左表、右表以及两个表中所有的记录,即使某些记录在另一表...

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

    在多表查询时,如果连接条件影响到连接的结果,必须将它们放在`ON`后面,以确保`LEFT JOIN`或`RIGHT JOIN`的正确行为。对于不影响连接的条件,放在`ON`或`WHERE`后面都可以,但这不会改变连接类型的效果。 总结一下...

    mysql 开发技巧之JOIN 更新和数据查重/去重

    1 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN(MySQL 不支持)、CROSS JOIN 这是在网上找到的非常好的一篇博文,图解 join 语句: CODING HORROR-A Visual Explanation of SQL Joins 下图可以很清楚的明白,join ...

    sql join( inner join, outer join) 分析

    接下来,我们讨论OUTER JOIN,它分为LEFT JOIN、RIGHT JOIN和FULL JOIN。OUTER JOIN的目的是返回所有匹配的行以及至少一方表中的非匹配行。 - LEFT JOIN(或LEFT OUTER JOIN)返回左表中的所有行,即使右表中没有...

    mysql join所有方法总结

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

    MySQL JOIN 工作原理浅析1

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

    语法教学20. 用 inner, left, right, cross join 联集数据表的介绍与示范

    [MySQL][關聯式資料庫][DB]_語法教學#20._用_inner,_left,_right,_cross_join_聯集

    MySQL JOIN之完全用法

    3. **右外联接(RIGHT JOIN 或 RIGHT OUTER JOIN)**:右外联接与左外联接相反,返回右表的所有行,即使在左表中没有匹配的行。对于右表中那些在左表中没有匹配的行,结果集中相应左表的字段将填充为NULL。 4. **全外...

    SQL联合查询inner join、outer join和cross join的区别详解

    在MySQL中,CROSS JOIN等同于INNER JOIN,但标准SQL中两者有区别。 使用JOIN而不是逗号(,)进行表连接的主要原因是效率。使用逗号连接的表会先生成一个巨大的笛卡尔积,然后再通过WHERE子句筛选结果,这可能导致...

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

    3. **使用适当的JOIN类型**:根据业务需求,有时候`INNER JOIN`或`RIGHT JOIN`可能比`LEFT JOIN`更合适。 4. **合理使用子查询**:虽然应尽量避免,但在某些情况下,子查询可能是必要的。在这种情况下,尝试将子查询...

Global site tag (gtag.js) - Google Analytics