Der Inhalt dieses Artikels befasst sich mit dem Codebeispiel für die Implementierung einer Eins-zu-Viele-Abfrage. Ich hoffe, dass es für Sie hilfreich ist.
Was wir dieses Mal implementieren möchten, ist eine Eins-zu-viele-Abfrage, die mithilfe der Funktion „group_concat“ von MySQL implementiert wird.
group_concat
Einfach ausgedrückt besteht die Funktion dieser Funktion darin, mehrere Felder zu verbinden. Eine ausführliche Erklärung der Funktion finden Sie in diesem Artikel.
Datentabelle
Zuerst erstellen wir zwei Tabellen
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', '美术');
Wenn wir die verwenden, die wir normalerweise verwenden Das Ergebnis der SQL-Abfrage
SELECT s.`name`,c.`c_name` FROM student AS s LEFT JOIN course AS c ON c.s_id = s.id;
ist
Im Folgenden wird die Funktion group_concat
verwendet, um
SELECT s.`name`,(SELECT group_concat(course.c_name) FROM course WHERE course.s_id = s.id) FROM student AS s;
Das Ergebnis abzufragen Abfrage zu diesem Zeitpunkt
Das obige ist der detaillierte Inhalt vonMySQL-Codebeispiel zur Implementierung einer Eins-zu-Viele-Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!