Le contenu de cet article concerne l'exemple de code de MySQL implémentant une requête un-à-plusieurs. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Ce que nous voulons implémenter cette fois, c'est une requête un-à-plusieurs, qui est implémentée à l'aide de la fonction group_concat de MySQL.
group_concat
En termes simples, la fonction de cette fonction est de connecter plusieurs champs. Pour une explication détaillée de la fonction, veuillez consulter cet article.
Table de données
Nous créons d'abord deux tables
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', '美术');
Si nous utilisons l'habituel The le résultat de la requête SQL
SELECT s.`name`,c.`c_name` FROM student AS s LEFT JOIN course AS c ON c.s_id = s.id;
est
Ci-dessous, utilisez la fonction group_concat
pour interroger
SELECT s.`name`,(SELECT group_concat(course.c_name) FROM course WHERE course.s_id = s.id) FROM student AS s;
. this Les résultats de la requête
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!