欢迎光临
我们一直在努力

MySQL中三表联查实战(mysql三表查询)

MySQL中三表联查是在MySQL中一种技术,它的作用就是从另外两张表中获取数据,并与本表的信息进行联合,查询出满足条件的结果。它在分析大型数据库时非常有用。下面我们就通过一个实战案例来体验这种技术。

首先,我们假设有一个学生表student,其中包含学生的id,name和class_id。

~~~

CREATE TABLE `student` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键id’,

`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘姓名’,

`class_id` int(11) NOT NULL COMMENT ‘班级id’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

~~~

接下来,我们有两个表,一个是班级表class,一个是学校表school,分别保存班级和学校的信息。

~~~

CREATE TABLE `class` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键id’,

`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘班级名字’,

`school_id` int(11) NOT NULL COMMENT ‘学校id’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE `school` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键id’,

`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘校名’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

~~~

接下来,就可以通过MySQL中的三表联查查询学生所在学校的名称,代码如下:

~~~

SELECT student.name, school.name

FROM student, class, school

WHERE student.class_id = class.id

AND class.school_id = school.id;

~~~

查询结果如下,是一个表格:

| name | school.name |

| —– | ———– |

| 小明 | 清华 |

| 小红 | 北大 |

| 小张 | 北航 |

总之,利用MySQL结合三表联查,可以方便快捷地把多张表联接起来,查找出所需的信息,在大型数据的分析中,非常有用。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。