28.MySQL中的左(右)外连接

28.MySQL中的左(右)外连接

1.准备

CREATE TABLE grade(
    id INT(4) PRIMARY KEY,
    name VARCHAR(36)
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO grade VALUES (1,'一班');
INSERT INTO grade VALUES (2,'二班');
INSERT INTO grade VALUES (3,'三班');
INSERT INTO grade VALUES (4,'四班');

CREATE TABLE student(
    id INT(4) PRIMARY KEY,
    name VARCHAR(36),
    gid INT(4)
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO student VALUES (1,'a1',1);
INSERT INTO student VALUES (2,'a2',1);
INSERT INTO student VALUES (3,'a3',2);
INSERT INTO student VALUES (4,'a4',2);
INSERT INTO student VALUES (5,'a5',3);
INSERT INTO student VALUES (6,'a6',3);
INSERT INTO student VALUES (7,'a7',3);
INSERT INTO student VALUES (8,'a8',3);
INSERT INTO student VALUES (9,'a9',5);

grade:
在这里插入图片描述
student:
在这里插入图片描述

2.左外连接

左外连接是外连接查询中的一种,也可以称其为左连接。
左外连接用于返回连接关键字(LEFT JOIN)左表中所有的记录,以及右表中符合连接条件的记录。
当左表的某行记录在右表中没有匹配的记录时,右表中相关的记录将设为空值。
语法:

SELECT 查询字段 FROM1 LEFT [OUTER] JOIN2 ON 匹配条件;

关键字 LEFT [OUTER] JOIN 左边的表被称为左表,也可称为主表
关键字右边的表被称为右表,也可称为从表
outer在查询时可以省略:

SELECT * FROM grade 
LEFT JOIN student ON grade.id=student.gid;

在这里插入图片描述

3.右外连接

右外连接也是外连接查询中的一种,可以将其称为右连接。

它用于返回连接关键字(RIGHT JOIN)右表(主表)中所有的记录,以及左表(从表)中符合连接条件的记录。

当右表的某行记录在左表中没有匹配的记录时,左表中相关的记录将设为空值。

语法:

SELECT 查询字段  FROM1 RIGHT [OUTER] JOIN2 ON 匹配条件;
SELECT * FROM grade RIGHT JOIN student ON grade.id=student.gid;

在这里插入图片描述
4.总结
1)外连接分为左外连接和右外连接;
2)外连接与内连接的区别是,内连接只能获取符合连接条件的记录,而外连接不仅可以获取符合连接条件的记录,还可以保留主表与从表不能匹配的记录。
3)右连接查询正好与左连接相反。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值