Mysql 左链接 右连接 内连接

一. 基本概念

  1. LEFT JOIN 左连接:以左表为主,显示左表所有的数据,右表中没有的显示null值。

  2. RIGHT JOIN 右连接:以右表为主,显示右表所有的数据,左表中没有的显示null值。

  3. INNER JOIN 内连接:只返回两个表中连接字段相等的行。
    FULL JOIN自然连接(自然连接和内连接一样,一般情况下都使用自然联结)

二. 环境准备

CREATE TABLE A(
	id INT NOT NULL AUTO_INCREMENT,
	作者 VARCHAR(10),
	出自 VARCHAR(10),
	PRIMARY KEY (id)
);

INSERT INTO A (作者,出自) VALUES('荀子','劝学');
INSERT INTO A (作者,出自) VALUES('屈原','离骚');
INSERT INTO A (作者,出自) VALUES('老子','老子');

CREATE TABLE B(
	id INT,
	verse VARCHAR(30)
);

INSERT INTO B(id,verse) VALUES(1,'不积跬步无,以至千里');
INSERT INTO B(id,verse) VALUES (2,'路漫漫其修远兮,吾将上下而求索');
INSERT INTO B(id,verse) VALUES (4,'不积小流,无以成江海');

1. 左链接测试

#左链接
SELECT A.* ,B.* FROM A LEFT OUTER JOIN B ON(A.`id`=B.`id`);

测试结果:
在这里插入图片描述

2. 右链接测试

#右连接
SELECT A.* ,B.* FROM A RIGHT OUTER JOIN B ON(A.`id`=B.`id`);

测试结果:
在这里插入图片描述

3. 内链接(自然连接)测试

#内连接
#自然连接(内连接和自然联结一样,一般情况下都使用自然联结)
SELECT * FROM a,b WHERE a.`id`=b.`id`;

测试结果:
在这里插入图片描述

三. on、where 的区别

  1. on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

  2. where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

  3. on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后。

SELECT * FROM A LEFT JOIN B ON(a.`id`=b.`id`) WHERE a.`作者`='荀子';

测试结果:
在这里插入图片描述

持续更新…

参考连接:
链接: SQL语句join on和where的区别
链接: SQL中的左连接与右连接,内连接有什么区别

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香辣奥利奥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值