MySQL實現一對多查詢的代碼示例

本篇文章給大家帶來的內容是關于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;

查詢出的結果是

MySQL實現一對多查詢的代碼示例

下面用 group_concat 函數查詢

SELECT s.`name`,(SELECT group_concat(course.c_name) FROM course WHERE course.s_id = s.id) FROM student AS s;

此時查詢的結果

MySQL實現一對多查詢的代碼示例

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享