MySQL 一对多查询

时间:2022-12-21 11:03:07

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

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

 CREATE TABLE `student` (
   `id` ) NOT NULL AUTO_INCREMENT,
   `name` ) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE DEFAULT CHARSET=utf8;

 -- ----------------------------
 -- Records of student
 -- ----------------------------
 ', 'tom');
 ', 'jerry');

 CREATE TABLE `course` (
   `id` ) NOT NULL AUTO_INCREMENT,
   `s_id` ) NOT NULL,
   `c_name` ) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE DEFAULT CHARSET=utf8;

 -- ----------------------------
 -- Records of course
 -- ----------------------------
 ', '语文');
 ', '数学');
 ', '英语');
 ', '体育');
 ', '美术');

下面用 group_concat 函数查询

 SELECT S.`NAME`,(SELECT GROUP_CONCAT(COURSE.C_NAME) FROM COURSE WHERE COURSE.S_ID = S.ID) FROM STUDENT AS S;