导语

这次要实现的是一对多查询,使用 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一对多查询_MySQL 一对多查询相关推荐

  1. mysql 三个表内连接查询_MySQL多表查询详解

    多表查询 1. 表与表之间的关系 <1> 一对一 用户表和身份信息表,用户表是主表 男人表.女人表 create table man( mid int primary key auto_i ...

  2. golang mysql多表查询_MySQL多表查询

    一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...

  3. php mysql 时间戳查询_mysql中时间查询函数(包括时间戳)

    mysql中时间查询函数(包括时间戳) 这些函数都是MySQL自带的,可以直接使用在PHP写的MySQL查询语句中哦 1-CURDATE()或CURRENT_DATE()和CURTIME()或CURR ...

  4. mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程

    MysqL 列子查询及 IN.ANY.SOME 和 ALL 操作符的使用MysqL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如 ...

  5. mysql 检查哪些项目_mysql根据内容查询在哪个表.go

    package main import ( "database/sql" "errors" "fmt" "github.com/g ...

  6. mysql数据库实验3查询_mysql数据库(3)-查询

    数据库设计规范 查询 创建数据库.数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1 ...

  7. mysql 同表子查询_MySQL 表子查询

    MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据. MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: aidtitlecontentu ...

  8. mysql一对多分类_mysql一对多结果归类

    我从数据库里面查出来很多数据,都是一条一条的,是一个二维数组,格式如下: Array ( [0] => Array ( [id] => 29 [user_id] => 1 [car_ ...

  9. MySQL列数不确定查询_MySQL的高级查询

    高级查询: 1.连接查询      指把2张表或者多张表之间做一个连接,所有数据放在一个表里显示.适用于有外键关系的2张表或多张表.如果没有加外键关系,但是这2张表有联系,也可以加连接查询. sele ...

  10. mysql离散查询_mySQL数据库数据查询操作详解

    查询数据: 简单查询: 1.查询所有数据: select * from 表名 #select * from info 查询所有列 2.查询指定列: select code,name from info ...

最新文章

  1. ncnn量化学习笔记
  2. 【信息安全】ECC加密算法入门介绍
  3. HDFS二次开发常见问题
  4. SVN更新的时候报断言失败解决办法
  5. 黄聪:PHP去掉转义后字符串中的反斜杠\函数stripslashes
  6. ios设计规范_e微课5期:ios设计规范带来的设计细节(下篇)
  7. Linux 定时任务 定时备份mysql数据
  8. java读取某个文件夹下的所有文件
  9. CSS3和jQuery实现的自定义美化Checkbox和Radiobox
  10. 04MVC、RPC、SOA、微服务架构区别
  11. 去除winrar的弹窗广告方法(亲测有效)
  12. 常见单位换算[时间,距离,热量...]
  13. word2010中设置页码起始页从任意一页开始
  14. 心率检测实现报告(二)
  15. C语言 近似求PI
  16. java即时通讯im聊天源码,dubbo即时通讯im聊天源码,netty即时通讯im聊天源码,springboot即时通讯im聊天源码
  17. dubbo的简单搭建
  18. 刷脸支付青蛙Pro打通微信卡包小程序
  19. mac使用git管理Github
  20. Content Negotation在Nancy的实现和使用

热门文章

  1. 一款非常nice的国产U盘启动制作工具——Ventoy
  2. 如果感觉没有动力或是心情很失落,那就听听战歌吧!(可免费下载)
  3. Pinocchio——将.arith文件转换为qap及做相应的prove/verify操作
  4. 【动手学习深度学习笔记】
  5. 网页制作存在的一些难点
  6. PostgreSQL XMAX深入探究
  7. 一款基于企业微信的固定资产管理软件
  8. 心はちょっと疲れた、誰も片隅に休んで……作者の宝物は
  9. 页眉怎么添加【节】,设置不同章节不同页眉
  10. LeeCode:救生艇(贪心)