我有两张桌子:
articles
id int auto_increment
title VARCHAR
desc VARCHAR
etc
tags
id int auto_increment
articleId int
tag Varchar
这个想法是文章有多个标签。
我想在一个以逗号或其他内容分隔的字段中选择包含所有标签的文章。
结果如下:
title | desc | tags |
---------------------------------------
article1 | desc1 | Tech,Science |
article2 | desc2 | Drama,Tv,Funny |
我正在寻求查询帮助。
这就是我所拥有的...我知道这不对......我猜我需要某种加入和连接?
SELECT *
FROM portfolio.articles, portfolio.tags
WHERE articles.id = tags.articleId;
任何帮助都会很棒!
答案 0 :(得分:1)
尝试:
SELECT a.title, a.desc, group_concat(t.tag) as tags
FROM portfolio.articles a
join portfolio.tags t
on a.id = t.articleId
group by a.title, a.desc
您想使用group_concat函数,它基本上是垂直连接。
答案 1 :(得分:0)
您需要使用group_concat函数
所以你会有这样的事情:
select
a.title,
a.desc,
group_concat(t.tag)
from articles a
inner join tags t on a.id = t.articleId
group by
a.title, a.desc
这将使用逗号
分隔每个标记