Удалить дубликаты в соединительной таблице - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть 4 таблицы, подобные этим: ПРОЕКТЫ

ID - TITLE - PMJOIN_ID - RESPJOIN_ID
1 - TEST - 1 - 2

PMJOIN

ID - PROJECTS_ID - USER_ID
1 -1 - 1 
1 -1 - 2 

RESPJOIN

ID - PROJECTS_ID - USER_ID
2 -1 - 2 

ПОЛЬЗОВАТЕЛИ

ID - ALIAS 
1 - PIPPO
2 - PLUTO

Я хочу запрос, который перечисляет все проекты со всеми pms и ответственными лицами в одной строке.Объединение pms и ответственных лиц с (,).

Таким образом, желаемый результат будет:

1-TEST-PIPPO,PLUTO-PLUTO

Все попытки объединения, которые я пробовал, дают повторяющиеся строки.

1 Ответ

0 голосов
/ 18 сентября 2018

Используйте функции агрегирования, такие как GROUP_CONCAT , с соответствующими объединениями.

Проверьте следующий запрос:

SELECT p.ID, 
       p.TITLE, 
       GROUP_CONCAT(DISTINCT u1.ALIAS) AS PMs, 
       GROUP_CONCAT(DISTINCT u2.ALIAS) AS RESPs
FROM PROJECTS AS p 
JOIN PMJOIN AS pmj ON pmj.PROJECTS_ID = p.ID 
JOIN USERS AS u1 ON u1.ID = pmj.USER_ID 
JOIN RESPJOIN AS rj ON rj.PROJECTS_ID = p.ID 
JOIN USERS AS u2 ON u2.ID = rj.USER_ID 
GROUP BY p.ID, p.TITLE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...