我想连接表Documents(id,name)和Tags(tagId,tagname,docId(FK))。但是,结果将返回许多冗余行,因为一个文档可以包含许多标记:
Document_name |Tag
----------------------
document01 tag01
document01 tag02
document02 tag01
我试图解决的是:
document_name |Tags
----------------------------
document01 | tag01, tag02
document02 | tag01
或者可以是这样的:
Document_name |Tag_1 |Tag_2 |Tag_...
---------------------------------------
document01 tag01 |tag02
document02 tag01
任何人都知道如何实施此案例?非常感谢! (我试图在这个网站上找到其他答案,但我不知道在这种情况下搜索的合适关键词)
答案 0 :(得分:2)
如果你使用MySQL,你可以这样做:
select document_name, group_concat(tag SEPARATOR ', ')
from Documents
group by document_name
答案 1 :(得分:1)
对于MS-SQL,试试这个
select
d1.Document_name,
(
select d2.Tag +','
from Docs d2
where d2.Document_name = d1.Document_name
for xml path('')
) as Tags
from Docs d1
group by d1.Document_name
答案 2 :(得分:0)
在MySQL中:
SELECT doc.name, GROUP_CONCAT( tag.tagname SEPARATOR ', ')
FROM documents AS doc
JOIN Tags AS tag ON doc.id = tag.docId
GROUP BY tag.docId
结果:
document_name |Tags
----------------------------
document01 | tag01, tag02
document02 | tag01