如何将查询结果放入å•åˆ—中的逗å·åˆ†éš”列表中

时间:2013-05-12 11:47:24

标签: mysql sqlite

表格结构

articles(id, content)
article_tags(article_id, tag_id)
tag(id, name)

按任æ„标签选择所有文章说“TAG1â€æˆ‘正在使用

SELECT a.*
FROM  (
    SELECT at.article_id AS id
    FROM   article_tags at
    JOIN   tags t ON t.Id = at.tag_id
    WHERE  t.name = 'TAG1'
    ) a1
JOIN articles a USING (id);

输出:

COULUMNS of articles after above query since used a.*
----------------
| id | content |  
----------------

目标:

在上é¢è¿è¡Œæ—¶ï¼Œæˆ‘获得了由“TAG1â€è¿‡æ»¤çš„所有文章列。 但由于文章å¯èƒ½æœ‰å¤šä¸ªæ ‡ç­¾ï¼Œæˆ‘想在返回的结果中添加一个列。 所以我的返回列将是

 ------------------------------ 
| id | content |  using_tags |
------------------------------ 
|  1 | content | TAG1,TAG2   |

1 个答案:

答案 0 :(得分:2)

一ç§ç®€å•çš„方法......

SELECT a.*, GROUP_CONCAT(t2.name) AS using_tags
FROM (...inner query unchanged...) a1
INNER JOIN articles a USING (id)
LEFT JOIN article_tags at2 ON (a.id = at2.article_id)
LEFT JOIN tags t2 ON (t2.Id = at2.tag_id)
GROUP BY a.id
ORDER BY x