连接具有一个具有多个相同ID的表的表

时间:2019-02-19 08:57:12

标签: mysql sql

我想加入三个表。这些表之一(modx_article_category)可以具有具有相同ID(商品具有多个类别)的行。 我想将这些连接的值放在结果用逗号分隔的单列中。

到目前为止,这是我的代码:

我一直在寻找解决方案,但甚至不确定要用什么谷歌...

CREATE TABLE article_en AS
SELECT *
FROM mod_article_c, category_c, modx_article_category
WHERE mod_article_c.article_id = modx_article_category.article
AND modx_article_category.category = category_c.category_id
AND mod_article_c.article_lang = "en"
AND category_c.category_lang = "en"

数据库样本:

https://raslan.de/index.php/s/cK9mxGyj9wKzFsS

即使可能会选择更多类别,它也只会选择一个类别。

如果您需要更多信息,请告诉我。 预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用group_concat。

SELECT c1.category_id, 
       Group_concat(DISTINCT article ORDER BY article) 
FROM   mod_article_c c 
       INNER JOIN modx_article_category c1 
               ON c.article_id = c1.article 
       INNER JOIN category_c c2 
               ON c1.category = c2.category_id 
WHERE  c.article_lang = "en" 
       AND c2.category_lang = 'en' 
GROUP  BY category_id; 

上面的查询将返回每个category_id / category的所有文章