您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)怎么在mysql中使用GROUP_CONCAT方法,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
結(jié)構(gòu)如下:
cate表:
CREATE TABLE `cate` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `name` char(20) DEFAULT '' COMMENT '分類名', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='文章分類表';
article表:
CREATE TABLE `article` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `title` varchar(50) DEFAULT '', `cate_id` int(11) NOT NULL DEFAULT '0' COMMENT '分類id', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='文章表';
article_extend表:
CREATE TABLE `article_extend` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(10) unsigned DEFAULT '0' COMMENT '文章id', `name` varchar(255) DEFAULT '' COMMENT '音頻,圖片之類', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='附件表';
三張表數(shù)據(jù)如下:
cate表:
article表:
article_extend表:
問題來了,現(xiàn)在通過表連接查詢,查詢文章id為1的文章數(shù)據(jù),并顯示文章標(biāo)題,文章分類,文章name。
SELECT a.id AS aid, a.title AS atitle, c. NAME AS cname, ae. NAME AS aname FROM article AS a LEFT JOIN cate AS c ON a.cate_id = c.id LEFT JOIN article_extend AS ae ON a.id = ae.article_id WHERE a.id = 1;
結(jié)果如下,出現(xiàn)了兩條數(shù)據(jù):
現(xiàn)在只想要一條結(jié)果,aname字段進(jìn)行合并,如何做?
只有通過GROUP_CONCAT來實(shí)現(xiàn)了:
SELECT a.id AS aid, a.title AS atitle, c. NAME AS cname, GROUP_CONCAT(ae. NAME SEPARATOR '-') AS aname FROM article AS a LEFT JOIN cate AS c ON a.cate_id = c.id LEFT JOIN article_extend AS ae ON a.id = ae.article_id WHERE a.id = 1;
結(jié)果如下:
那么,現(xiàn)在我們不想通過文章id一條一條的查,我們要取全部,但如果文章name有多個(gè)的要進(jìn)行合并,如何做?
SELECT a.id AS aid, a.title AS atitle, c. NAME AS cname, ae.allname FROM article AS a LEFT JOIN ( SELECT ae.article_id, GROUP_CONCAT(ae. NAME) AS allname FROM article_extend AS ae GROUP BY ae.article_id ) AS ae ON a.id = ae.article_id LEFT JOIN cate AS c ON a.cate_id = c.id;
結(jié)果如下:
關(guān)于怎么在mysql中使用GROUP_CONCAT方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。