mysql多表联合查询

多表联合查询是指在同一张表中查询来自多个表的数据,可以使用JOIN关键字来实现。常见的联合查询有内连接、左连接、右连接和全连接。

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):

idname
1小明
2小红
3小刚

成绩表(score):

idstudent_idsubjectscore
11语文80
21数学90
32语文85
42数学95

查询学生姓名和他们的语文成绩:

SELECT student.name, score.subject, score.score
FROM student
INNER JOIN score
ON student.id = score.student_id
WHERE score.subject = '语文';

结果:

namesubjectscore
小明语文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 = '数学';

结果:

namesubjectscore
小明数学90
小红数学95
小刚NULLNULL

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。内容未经允许不得转载,或转载时需注明来源: 创新互联