MySQL联表查询是一种在多个表中查询数据的方法,它可以帮助我们轻松实现多表关联操作,联表查询主要有以下几种类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN),下面将详细讲解这些类型的用法。
我们提供的服务有:做网站、成都网站建设、微信公众号开发、网站优化、网站认证、汉南ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的汉南网站制作公司
1、内连接(INNER JOIN)
内连接是最常用的连接类型,它返回两个表中满足连接条件的所有记录,如果某个记录在另一个表中没有匹配的记录,则不会显示该记录。
语法:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
示例:
假设有两个表,一个是学生表(student),一个是成绩表(score):
学生表(student):
id | name |
1 | 小明 |
2 | 小红 |
3 | 小刚 |
成绩表(score):
id | student_id | subject | score |
1 | 1 | 语文 | 80 |
2 | 1 | 数学 | 90 |
3 | 2 | 语文 | 85 |
4 | 2 | 数学 | 95 |
查询学生姓名和他们的语文成绩:
SELECT student.name, score.subject, score.score FROM student INNER JOIN score ON student.id = score.student_id WHERE score.subject = '语文';
结果:
name | subject | score |
小明 | 语文 | 80 |
小红 | 语文 | 85 |
2、左连接(LEFT JOIN)
左连接返回左表中的所有记录,以及右表中满足连接条件的记录,如果在右表中没有匹配的记录,则显示为NULL。
语法:
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
示例:
查询所有学生的姓名和他们的数学成绩(如果没有数学成绩,则显示为NULL):
SELECT student.name, score.subject, score.score FROM student LEFT JOIN score ON student.id = score.student_id WHERE score.subject = '数学';
结果:
name | subject | score |
小明 | 数学 | 90 |
小红 | 数学 | 95 |
小刚 | NULL | NULL |
3、右连接(RIGHT JOIN)
右连接返回右表中的所有记录,以及左表中满足连接条件的记录,如果在左表中没有匹配的记录,则显示为NULL。
语法:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
4、全连接(FULL JOIN)
全连接返回两个表中满足连接条件的所有记录,如果某个记录在另一个表中没有匹配的记录,则显示为NULL。
语法:
SELECT column_name(s) FROM table1 FULL JOIN table2 ON table1.column_name = table2.column_name;
MySQL联表查询可以帮助我们轻松实现多表关联操作,通过使用不同类型的连接,我们可以根据需要获取所需的数据,在实际使用中,还可以结合其他SQL语句,如分组、排序等,以实现更复杂的查询需求。
文章名称:mysql多表联合查询
分享路径:http://www.shufengxianlan.com/qtweb/news44/490244.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联