簡體   English   中英

如何使用單個mySql查詢將多個聯接表中的結果連接到限制列表中?

[英]How do I concatenate the results from multiple join tables into a delimmited list using a single mySql query?

在MySql中,我有一個文檔表,一個文件夾表和一個searchtags表

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是表示文檔和文件夾,文檔和搜索標簽之間關系的多對多連接表。 單個文檔可以具有多個文件夾以及與其關聯的多個搜索標簽。

我想知道是否有可能建立一個單一的查詢,將選擇所有文件的標題,以及屬於一個每個文檔的每個文件夾標題的delimmited列表,也屬於每一個searchtag所有權delimmited列表每個文件。

例如,結果集可能看起來像這樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM