使用桥接表的mySQL JOIN语法

时间:2009-11-22 15:32:27

标签: mysql join

我正在尝试从两个表中导出一些数据,这些表由第三个表桥接,该表存储一个(文件)到多个(关键字)关系。

表格如下:

files
id, url, title

keywords
id, word

bridge
file, word

我想要的是生成一个导出,每个文件有一行,如下所示:

files.id, files.url, files.title, keyword1|keyword2|keyword3|...

非常感谢任何建议!

1 个答案:

答案 0 :(得分:2)

您可以使用GROUP_CONCAT组合GROUP BY查询中的关键字:

SELECT 
  files.id, files.url, files.title,
  GROUP_CONCAT(keywords.word ORDER BY keywords.word SEPARATOR '|') keywords
FROM
  files
  LEFT OUTER JOIN bridge ON bridge.file = files.id
  LEFT OUTER JOIN keywords ON keywords.id = bridge.word
GROUP BY
  files.id, files.url, files.title