下面是详细讲解“Mysql两表联合查询的四种情况总结”的完整攻略。
简介
Mysql联合查询是指在多个表中查询出相关联的数据,并将这些数据组合成一个数据集合。
一般常见的联合查询有两个表之间的连接查询和两个表的全集查询,而这两种查询又可以分成内联接、左联接、右联接、全联接等四种情况。下面我们将分别介绍这四种情况的使用方法。
内联接
内联接是指仅显示两个表中相匹配的行。在 MySQL 中,内联接默认是 INNER JOIN 。
内联接的语法:
SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
INNER JOIN 表2
ON 表1.字段=表2.字段;
示例:
假设我们有两个表,一个叫stu, 一个叫score,stu表中保存了学生的姓名和ID信息,score表中保存了学生成绩信息(包括ID和成绩信息),我们希望查询出两个表匹配的学生ID、姓名和成绩。
首先我们需要使用 INNER JOIN 语句连接两个表,具体代码如下:
SELECT score.ID, stu.name, score.score
FROM score
INNER JOIN stu
ON score.ID = stu.ID;
执行结果如下:
+----+------+-------+
| ID | name | score |
+----+------+-------+
| 1 | Tom | 88 |
| 2 | Mike | 92 |
| 3 | Jack | 78 |
+----+------+-------+
说明:这个查询语句使用了 INNER JOIN 命令、score 表和 stu 表。
左联接
左联接的语法:
SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
LEFT JOIN 表2
ON 表1.字段=表2.字段;
示例:
我们还可以使用左联接查询出两个表中匹配和不匹配的数据,具体代码如下:
SELECT stu.ID, stu.name, score.score
FROM stu
LEFT JOIN score
ON stu.ID = score.ID;
执行结果如下:
+----+------+-------+
| ID | name | score |
+----+------+-------+
| 1 | Tom | 88 |
| 2 | Mike | 92 |
| 3 | Jack | 78 |
| 4 | John | NULL |
+----+------+-------+
说明:这个查询语句使用了 LEFT JOIN 命令、score 表和 stu 表。
右联接
右联接的语法:
SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
RIGHT JOIN 表2
ON 表1.字段=表2.字段;
示例:
我们还可以使用右联接查询出两个表中匹配和不匹配的数据,具体代码如下:
SELECT stu.ID, stu.name, score.score
FROM stu
RIGHT JOIN score
ON stu.ID = score.ID;
执行结果如下:
+----+------+-------+
| ID | name | score |
+----+------+-------+
| 1 | Tom | 88 |
| 2 | Mike | 92 |
| 3 | Jack | 78 |
|NULL| NULL | 60 |
+----+------+-------+
说明:这个查询语句使用了 RIGHT JOIN 命令、score 表和 stu 表。
全联接
全联接查询是指返回两个表中所有的数据。全联接的语法:
SELECT 表1.字段1,表2.字段1, 表2.字段2...
FROM 表1
FULL JOIN 表2
ON 表1.字段=表2.字段;
示例:
我们还可以使用全联接查询出两个表中全部的数据,具体代码如下:
SELECT stu.ID, stu.name, score.score
FROM stu
FULL JOIN score
ON stu.ID = score.ID;
执行结果如下:
+----+------+-------+
| ID | name | score |
+----+------+-------+
| 1 | Tom | 88 |
| 2 | Mike | 92 |
| 3 | Jack | 78 |
| 4 | John | NULL |
|NULL| NULL | 60 |
+----+------+-------+
说明:这个查询语句使用了 FULL JOIN 命令、score 表和 stu 表。
结束语
这就是 Mysql 两表联合查询的四种情况的操作方法了。需要注意的是,在 Mysql 的语句中,内联接默认的是 INNER JOIN,而其他三种则需要分别使用 LEFT JOIN、RIGHT JOIN、FULL JOIN 进行操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql两表联合查询的四种情况总结 - Python技术站