Объедините таблицы с одной таблицей, имеющей несколько идентичных идентификаторов - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу объединить три стола.Одна из этих таблиц (modx_article_category) может иметь строки с одинаковыми идентификаторами (статьи имеют несколько категорий).Я хотел бы поместить значения этих объединений в один столбец, в котором результаты разделены запятыми.

Вот мой код:

Я искал решение, но даже не уверенчто гуглить ...

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 голосов
/ 19 февраля 2019

Вы можете использовать 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; 

При запросе выше будут возвращены все статьи для каждого идентификатора категории / категории

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...