MySQL 中 Inner 连接的使用方法
Inner 连接是 MySQL 中最常用的一种连接方式,它可以通过将两个表中相同的记录连接到一起,从而实现数据的高效查询。在进行 Inner 连接时,需要先确定需要连接的两个表,并且可以指定用于连接的字段。下面介绍 Inner 连接的使用方法。
1. 创建需要连接的两个表
首先需要创建需要连接的两个表,以学生信息表和成绩表为例。学生信息表包括学号、姓名和年龄字段,成绩表包括学号、科目和成绩字段。
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
CREATE TABLE `score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sid` int(11) DEFAULT NULL,
`subject` varchar(20) DEFAULT NULL,
`score` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
2. 插入数据
然后,插入一些测试数据。
INSERT INTO `student` (`name`, `age`) VALUES
(‘Tom’, 18),
(‘Jerry’, 20),
(‘Lucy’, 19);
INSERT INTO `score` (`sid`, `subject`, `score`) VALUES
(1, ‘Math’, 90),
(2, ‘Math’, 85),
(3, ‘Math’, 88),
(1, ‘English’, 80),
(2, ‘English’, 85),
(3, ‘English’, 95);
3. 进行 Inner 连接
完成插入操作后,即可开始进行 Inner 连接。可以使用以下 SQL 语句进行连接。
SELECT *
FROM `student`
INNER JOIN `score`
ON `student`.`id` = `score`.`sid`;
上述语句中,使用 INNER JOIN 关键字进行连接,并使用 ON 条件表达式指定连接字段。其中,`student`.`id` 表示学生信息表的主键,`score`.`sid` 表示成绩表中学号字段。执行该语句后,可以得到如下结果。
id name age id sid subject score
1 Tom 18 1 1 Math 90
1 Tom 18 4 1 English 80
2 Jerry 20 2 2 Math 85
2 Jerry 20 5 2 English 85
3 Lucy 19 3 3 Math 88
3 Lucy 19 6 3 English 95
可以看到,连接结果包括学生信息和成绩两个表的交集,其中每个学生的学科成绩都有记录。如果需要只查询某个学生的成绩,可以添加 WHERE 条件表达式,例如:
SELECT *
FROM `student`
INNER JOIN `score`
ON `student`.`id` = `score`.`sid`
WHERE `name` = ‘Tom’;
执行该语句后,可以得到以下结果:
id name age id sid subject score
1 Tom 18 1 1 Math 90
1 Tom 18 4 1 English 80
因此,Inner 连接非常适用于需要联合多个表查询的场景,可以通过连接不同的表,实现数据的高效获取和组合。