這篇文章帶給大家的內容是關於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實作一對多查詢的程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!