连接查询(JOIN)是SQL中用于从多个表中获取数据的一种操作,在连接查询中,我们需要指定两个或多个表之间的关联条件,以便将它们的数据组合在一起,常见的连接类型有内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。
以下是一个简单的连接查询示例:
1、假设我们有两个表,一个是学生表(students),另一个是成绩表(scores):
学生表(students):
id | name |
1 | 张三 |
2 | 李四 |
3 | 王五 |
成绩表(scores):
id | student_id | subject | score |
1 | 1 | 语文 | 80 |
2 | 1 | 数学 | 90 |
3 | 2 | 语文 | 85 |
4 | 2 | 数学 | 95 |
5 | 3 | 语文 | 75 |
6 | 3 | 数学 | 80 |
2、我们想要查询每个学生的姓名和他们的成绩,可以使用内连接(INNER JOIN)实现:
SELECT students.name, scores.subject, scores.score FROM students INNER JOIN scores ON students.id = scores.student_id;
查询结果:
name | subject | score |
张三 | 语文 | 80 |
张三 | 数学 | 90 |
李四 | 语文 | 85 |
李四 | 数学 | 95 |
王五 | 语文 | 75 |
王五 | 数学 | 80 |
3、如果某个学生没有成绩记录,我们希望仍然能看到这个学生的信息,可以使用左连接(LEFT JOIN)实现:
SELECT students.name, scores.subject, scores.score FROM students LEFT JOIN scores ON students.id = scores.student_id;
查询结果:
name | subject | score |
张三 | 语文 | 80 |
张三 | 数学 | 90 |
李四 | 语文 | 85 |
李四 | 数学 | 95 |
王五 | 语文 | 75 |
NULL | NULL | NULL |
NULL | NULL | NULL |
4、如果某个学生没有成绩记录,我们希望仍然能看到这个学生的信息,可以使用右连接(RIGHT JOIN)实现:
SELECT students.name, scores.subject, scores.score FROM students RIGHT JOIN scores ON students.id = scores.student_id;
查询结果:
name | subject | score |
NULL | NULL | NULL |
NULL | NULL | NULL |
NULL | NULL | NULL |
NULL | NULL | NULL |
| 李四 | NULL | NULL
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/635753.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复