MySQL 一对多查询

Posted xiaofengfree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 一对多查询相关的知识,希望对你有一定的参考价值。

group_concat
简单来说,这个函数的作用就是连接多个字段

数据表
首先我们先建立两个表

技术分享图片
 1 CREATE TABLE `student` (
 2   `id` int(11) NOT NULL AUTO_INCREMENT,
 3   `name` char(10) NOT NULL,
 4   PRIMARY KEY (`id`)
 5 ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
 6 
 7 -- ----------------------------
 8 -- Records of student
 9 -- ----------------------------
10 INSERT INTO `student` VALUES (1, tom);
11 INSERT INTO `student` VALUES (2, jerry);
12 
13 CREATE TABLE `course` (
14   `id` int(11) NOT NULL AUTO_INCREMENT,
15   `s_id` int(11) NOT NULL,
16   `c_name` char(10) NOT NULL,
17   PRIMARY KEY (`id`)
18 ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
19 
20 -- ----------------------------
21 -- Records of course
22 -- ----------------------------
23 INSERT INTO `course` VALUES (1, 1, 语文);
24 INSERT INTO `course` VALUES (2, 1, 数学);
25 INSERT INTO `course` VALUES (3, 2, 英语);
26 INSERT INTO `course` VALUES (4, 2, 体育);
27 INSERT INTO `course` VALUES (5, 2, 美术);
View Code

下面用 group_concat 函数查询

技术分享图片
1 SELECT S.`NAME`,(SELECT GROUP_CONCAT(COURSE.C_NAME) FROM COURSE WHERE COURSE.S_ID = S.ID) FROM STUDENT AS S;
View Code

 



以上是关于MySQL 一对多查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 一对多查询

减少 MySQL 中具有许多一对多关系 (ORM) 的查询

MyBatis多表联查

mysql表的一对一/一对多/多对多联系

sql 一对多查询

MySQL数据篇之多表操作-----保姆级教程