本篇文章给大家带来的内容是关于mysql实现一对多查询的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
这次要实现的是一对多查询,使用 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实现一对多查询的代码示例的详细内容。