zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

mysql 查询 实战 三表 联查 中三表
2023-06-13 09:14:55 时间

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结合三表联查,可以方便快捷地把多张表联接起来,查找出所需的信息,在大型数据的分析中,非常有用。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL中三表联查实战(mysql三表查询)