美文网首页
MySQL 一对多查询

MySQL 一对多查询

作者: haoyq | 来源:发表于2018-08-17 20:29 被阅读0次

导语

这次要实现的是一对多查询,使用 MySQL 的 group_concat 函数实现。

group_concat

简单来说,这个函数的作用就是连接多个字段,函数的具体详解可以看这篇文章

数据表

首先我们先建立两个表

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 'tom');
INSERT INTO `student` VALUES ('2', 'jerry');

CREATE TABLE `course` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `s_id` int(11) NOT NULL,
  `c_name` char(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES ('1', '1', '语文');
INSERT INTO `course` VALUES ('2', '1', '数学');
INSERT INTO `course` VALUES ('3', '2', '英语');
INSERT INTO `course` VALUES ('4', '2', '体育');
INSERT INTO `course` VALUES ('5', '2', '美术');

实例

如果我们用平时使用的 SQL 查询

SELECT s.`name`,c.`c_name` FROM student AS s LEFT JOIN course AS c ON c.s_id = s.id;

查询出的结果是

查询结果
下面用 group_concat 函数查询
SELECT s.`name`,(SELECT group_concat(course.c_name) FROM course WHERE course.s_id = s.id) FROM student AS s;

此时查询的结果


查询结果

参考资料:MySQL 的 GROUP_CONCAT 函数详解MySQL 一对多查询

相关文章

  • MySQL 一对多查询

    导语 这次要实现的是一对多查询,使用 MySQL 的 group_concat 函数实现。 group_conca...

  • Django-关系映射

    关系映射 一对一映射 语法 查询 一对多映射 语法 查询 多对多映射 语法 查询 自定义查询对象

  • SpringBoot+Spring JPA基础使用

    Spring JPA集成基础查询实例复杂查询+分页一对多查询及多对多查询 1. Spring JPA集成 1.1 ...

  • 关系的种类对于性能的影响

    一对多单向只有一个查询: 一对一双向同样只有一个查询: 多对一(维表为多端)双向,4个查询: 多对多双向,5个查询...

  • 旧不更新--后台一对多表查询

    关键字:mybaits关联查询,mybaits一对多查询,一个表单里面有多个附件,mapper.xml中一对多查询...

  • mysql ---多对多

    flask的orm框架(SQLAlchemy)-一对多查询以及多对多查询(venv) $ pip install...

  • Django模型层之多表操作(三)

    基于对象的跨表查询 一对多查询(publish与book) 一对一查询(Author 与 AuthorDetail...

  • 黑马SQL笔记 - 基础篇 - 4. 多表查询

    多表关系 一对多 多对多 一对一 连接查询 自连接:当前表与自身的连接查询,自连接必须使用表别名内连接:相当于查询...

  • mybatis CURD及进阶语句示例

    目录 插入 删除 修改 查询 1. 查询全部 2. 多条件查询 3. 模糊查询 4. 一对多查询 5. 多...

  • 拉钩笔记_模块一

    1.注解开发开发实现复杂映射: 一对一查询一对一 一对多查询一对多 代码实现如上,通过@Results、@Resu...

网友评论

      本文标题:MySQL 一对多查询

      本文链接:https://www.haomeiwen.com/subject/knedbftx.html