28.MySQL中的左(右)外连接 LEFT(RIGHT) [OUTER] JOIN

1.准备

 1 CREATE DATABASE mahaiwuji;
 2 USE mahaiwuji;
 3 
 4 CREATE TABLE grade(
 5     id INT(4) PRIMARY KEY,
 6     name VARCHAR(36)
 7 ) ENGINE = INNODB DEFAULT CHARSET = utf8;
 8 
 9 INSERT INTO grade VALUES (1,'一班');
10 INSERT INTO grade VALUES (2,'二班');
11 INSERT INTO grade VALUES (3,'三班');
12 INSERT INTO grade VALUES (4,'四班');
13 
14 CREATE TABLE student(
15     id INT(4) PRIMARY KEY,
16     name VARCHAR(36),
17     gid INT(4)
18 ) ENGINE = INNODB DEFAULT CHARSET = utf8;
19 
20 INSERT INTO student VALUES (1,'a1',1);
21 INSERT INTO student VALUES (2,'a2',1);
22 INSERT INTO student VALUES (3,'a3',2);
23 INSERT INTO student VALUES (4,'a4',2);
24 INSERT INTO student VALUES (5,'a5',3);
25 INSERT INTO student VALUES (6,'a6',3);
26 INSERT INTO student VALUES (7,'a7',3);
27 INSERT INTO student VALUES (8,'a8',3);
28 INSERT INTO student VALUES (9,'a9',5);

2.左外连接

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

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

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

语法

1 SELECT 查询字段 FROM 表1 LEFT [OUTER] JOIN 表2 ON 匹配条件;

关键字“LEFT [OUTER] JOIN”左边的表(表1)被称为左表,也可称为主表

关键字右边的表(表2)被称为右表,也可称为从表

OUTER在查询时可以省略。

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

3.右外连接

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

扫描二维码关注公众号,回复: 10968373 查看本文章

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

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

语法

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

4.总结

  1. 外连接是最常用的一种查询数据的方式,分为左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)。

  2. 外连接与内连接的区别是,内连接只能获取符合连接条件的记录,而外连接不仅可以获取符合连接条件的记录,还可以保留主表与从表不能匹配的记录。

  3. 右连接查询正好与左连接相反。因此,在应用外连接时仅调整关键字(LEFT JOIN或RIGHT JOIN)和主从表的位置,即可实现左连接和右连接的互换使用。

猜你喜欢

转载自www.cnblogs.com/mahaiwuji/p/12735847.html