SQL中的内连接(inner join)用法
作者:mmseoamin日期:2023-12-21

一、什么是内连接(inner join)

`INNER JOIN`是SQL中的一种连接类型,用于将两个或多个表中的记录根据某个条件进行匹配,并返回匹配的记录。它只返回那些在两个表中都有匹配的记录。

以下是一个示例的`INNER JOIN`查询语句:

SELECT table1.column1, table2.column2

FROM table1

INNER JOIN table2

ON table1.common_column = table2.common_column;

二、内连接(inner join)的用法

下面我们使用3个查询示例,讲解内连接(inner join)在查询中的使用场景。

以下是一份学生信息登记表、一份考试成绩表、一份出生地登记表

表1:学生信息登记表

SQL中的内连接(inner join)用法,2c3b662901c4421187258035c30e24bd.png,第1张

 

表2:部分学生成绩表

SQL中的内连接(inner join)用法,8a454e3dc57c49038c5e791988d2a3c0.png,第2张

表3:出生地登记表

SQL中的内连接(inner join)用法,f210bc086b92452ba01d639e4856a561.png,第3张

1、要求查询出参加了考试的学生信息。

使用'学号'作为连接键,连接两个表

SELECT
	y.学号,
	y.姓名,
	y.总分,
	x.班级,
	x.入学日期,
	x.联系电话 
FROM
	学籍信息 AS x
	INNER JOIN 部分学生成绩 AS y 
	ON x.学号 = y.学号;

以上语句表示让表“学籍信息”的列“学号”和表“部分学生成绩”的列“学号”作为匹配的连接键。

可以看到使用inner join (内连接)将两个表连接后,对有考试成绩的学生信息进行了补全

SQL中的内连接(inner join)用法,7ec4cc742a5a4d08a689375864521a86.png,第4张

2、要求查询出考试成绩在90分以上的学生信息。

SELECT
	y.学号,
	y.姓名,
	y.总分,
	x.班级,
	x.入学日期,
	x.联系电话 
FROM
	学籍信息 AS x
	INNER JOIN 部分学生成绩 AS y 
	ON x.学号 = y.学号
	where 总分 >= 90;

以上查询通过设置where过滤条件,查询出了总分大于90分的学生信息。

SQL中的内连接(inner join)用法,1c4c0d7e25f44d9fbc9a2c61fb578101.png,第5张3、要求查询出考试成绩在90分以上学生的户籍地。

SELECT
	y.学号,
	y.姓名,
	y.总分,
	x.班级,
	x.入学日期,
	x.联系电话,
	z.户口性质,
	z.户籍地
FROM
	学籍信息 AS x
	INNER JOIN 部分学生成绩 AS y 
	ON x.学号 = y.学号
	inner join 出生地 as z
	on x.学号 = z.学号
	where 总分 >= 90;

以上查询通过连接3个表,设置where过滤条件,查询出了总分大于90分的学生信息。

SQL中的内连接(inner join)用法,b31a9a09bc0a448088eeea820aceb5d1.png,第6张