gpt4 book ai didi

mysql - 如何使用单个 mySql 查询将多个连接表的结果连接到分隔列表中?

转载 作者:行者123 更新时间:2023-11-29 09:16:04 25 4
gpt4 key购买 nike

在 MySql 中,我有一个文档表、一个文件夹表和一个搜索标签表

Documents
ID
title

Folders
ID
title

Searchtags
ID
title

docFolders
docID -> Documents.ID
folderID -> Folders.ID

docSearchtags
docID -> Documents.ID
searchtagID -> Searchtags.ID

在上面,docFolders和docSearchtags是多对多连接表,表达文档和文件夹、文档和搜索标签之间的关系。单个文档可以有多个文件夹和多个与其关联的搜索标签。

我想知道是否可以创建一个单个查询来选择所有文档的标题,以及属于每个文档的每个文件夹标题的分隔列表,以及属于每个文档的每个搜索标签标题的分隔列表。

例如,结果集可能如下所示:

RESULT
docTitle | folderTitles | searchtagTitles
The Quick Brown Fox | foxes, colours | Bushy tails, browny, foxy
The Slow Green Turtle | turtles, colours | Hard shells, slimy, turtle-soup
The Cute Fluffy Bunny | bunnies, cute | Fluffy, rabbit, rabbit-stew

(提前)感谢您的帮助

最佳答案

用途:

  SELECT d.title AS doctitle,
GROUP_CONCAT(DISTINCT f.title) AS foldertitles,
GROUP_CONCAT(st.title) AS searchtagtitles
FROM DOCUMENTS d
JOIN DOCFOLDER df ON df.docid = d.id
JOIN FOLDERS f ON f.id = dc.folderid
JOIN DOCSEARCHTAGS dsc ON dsc.docid = d.id
JOIN SEARCHTAGS st ON st.id = dsc.searchtagid
GROUP BY d.title

关于mysql - 如何使用单个 mySql 查询将多个连接表的结果连接到分隔列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com