溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在mysql中使用GROUP_CONCAT方法

發布時間:2021-03-20 17:04:24 來源:億速云 閱讀:215 作者:Leah 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關怎么在mysql中使用GROUP_CONCAT方法,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

結構如下:

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='附件表';

三張表數據如下:

cate表:

怎么在mysql中使用GROUP_CONCAT方法 

article表:

怎么在mysql中使用GROUP_CONCAT方法 

article_extend表:

怎么在mysql中使用GROUP_CONCAT方法 

問題來了,現在通過表連接查詢,查詢文章id為1的文章數據,并顯示文章標題,文章分類,文章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;

結果如下,出現了兩條數據:

怎么在mysql中使用GROUP_CONCAT方法 

現在只想要一條結果,aname字段進行合并,如何做?

只有通過GROUP_CONCAT來實現了:

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;

結果如下:

怎么在mysql中使用GROUP_CONCAT方法

那么,現在我們不想通過文章id一條一條的查,我們要取全部,但如果文章name有多個的要進行合并,如何做?

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;

結果如下:

怎么在mysql中使用GROUP_CONCAT方法

關于怎么在mysql中使用GROUP_CONCAT方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女