MySQL是一种关系型数据库管理系统,其中多表联合查询是其中非常重要的环节,它可以将多个表中的数据进行联合查询,从而增强查询功能和数据关联能力。下面我们详细讲解一下MySQL中的多表联合查询功能操作的完整攻略:
1.概述
多表联合查询是指在MySQL中使用JOIN操作对多张表进行连接的一种查询方式,可以通过连接多张表进行相关数据的筛选。JOIN操作有多种方式,包括INNER JOIN、LEFT JOIN、RIGHT JOIN等。需要提醒的是,在使用多表联合查询的时候,需要注意各个表之间的字段关系,以确保查询结果的准确性。下面我们分别介绍各种JOIN操作的用法。
2.INNER JOIN
INNER JOIN是MySQL中最基础的连接方式,其基本语法如下:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
其中,table1和table2是需要进行连接的两张表,ON是INNER JOIN的连接条件,可以连接多张表,最后根据SELECT查询所需字段显示结果。
例如,我们有两个表t1和t2,它们的结构分别如下:
t1表:
id | name | age |
---|---|---|
1 | 张三 | 22 |
2 | 李四 | 23 |
3 | 王五 | 25 |
4 | 赵六 | 24 |
t2表:
id | gender | job |
---|---|---|
1 | male | teacher |
2 | female | doctor |
3 | male | programmer |
4 | female | nurse |
我们想要通过INNER JOIN的方式将这两张表连接起来,连接条件是id相等,查找id、name和job这三个字段,那么查询语句应该如下:
SELECT t1.id, t1.name, t2.job FROM t1 INNER JOIN t2 ON t1.id = t2.id;
执行上面的查询语句,得到的结果如下:
id | name | job |
---|---|---|
1 | 张三 | teacher |
2 | 李四 | doctor |
3 | 王五 | programmer |
4 | 赵六 | nurse |
3.LEFT JOIN
LEFT JOIN是指左连接,它的语法如下:
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name;
其中,table1和表table2同样是需要连接的两张表,ON关键字是LEFT JOIN连接所具备的关联条件,column_name是两个表中相同的列名字,根据SELECT查询需要返回结果的字段显示数据。
例如,我们有两个表t1和t3,它们的数据结构如下:
t1表:
id | name | age |
---|---|---|
1 | 张三 | 22 |
2 |李四 | 23 | |
3 | 王五 | 25 |
4 | 赵六 | 24 |
t3表:
id | gender | job |
---|---|---|
1 | male | teacher |
2 | female | doctor |
3 | male | programmer |
我们要进行LEFT JOIN操作,将上述两个表连接,找出连接后的ID和职业,有些表的ID没有匹配到为NULL,那么查询语句应该如下:
SELECT t1.id, t3.job FROM t1 LEFT JOIN t3 ON t1.id = t3.id;
执行上面的查询语句,得到的结果如下:
id | job |
---|---|
1 | teacher |
2 | doctor |
3 | programmer |
4 | NULL |
左连接查询时如果出现了左表在右表中无法找到匹配值情况,左表中未匹配的记录也会被多个结果集返回,返回值中未匹配的结果显示为NULL。
4.RIGHT JOIN
RIGHT JOIN是指右连接,它的语法如下:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name;
其中,RIGHT JOIN实际上和LEFT JOIN类似,不同的是RIGHT JOIN是对右表进行操作。
例如,我们有两个表t1和t3,它们的数据结构如下:
t1表:
id | name | age |
---|---|---|
1 | 张三 | 22 |
2 |李四 | 23 | |
3 | 王五 | 25 |
4 | 赵六 | 24 |
t3表:
id | gender | job |
---|---|---|
1 | male | teacher |
2 | female | doctor |
3 | male | programmer |
我们进行RIGHT JOIN操作,将上述两个表连接,找出连接后的ID和职业,有些表的ID在另外一张没有匹配到情况下,那么查询语句应该如下:
SELECT t1.id, t3.job FROM t1 RIGHT JOIN t3 ON t1.id = t3.id;
执行上面的查询语句,得到的结果如下:
id | job |
---|---|
1 | teacher |
2 | doctor |
3 | programmer |
NULL | NULL |
右连接查询时如果出现了右表在左表中无法找到匹配值的情况,右表中的记录也会显示在结果集中,返回值中未匹配到的结果也会显示为空。
以上三种JOIN操作对于多表联合查询的过程是基础和必要的,务请注意掌握。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL中的多表联合查询功能操作 - Python技术站