Получение каскадного результата из 2-го LEFT JOIN mysql-запроса - PullRequest
0 голосов
/ 30 октября 2019

У меня есть 3 таблицы:

Table1

| id | description     |  
|----|-----------------|  
| i1 | description1    |  
| i2 | description2    |  
| i3 | description3    |  
| i4 | description4    |  

Table2

| id | group_id |  
|----|----------|  
| i1 | g1       |  
| i1 | g2       |  
| i2 | g2       |  
| i3 | g1       |  
| i3 | g3       |  
| i4 | g1       |  

Table3

| group_id | group_name |  
|----------|------------|  
| g1       | group1     |  
| g2       | group2     |  
| g3       | group3     |  

Я ищу запросполучить результат как:

i1 | description1 | group1,group2  
i2 | description2 | group2  
i3 | description3 | group1,group3  
i4 | description4 | group1

1 Ответ

1 голос
/ 30 октября 2019

Использование GROUP_CONCAT() Формула агрегации и предложение GROUP BY:

SELECT t1.id, t1.description, group_concat(t3.group_name) 
FROM table1 t1 
  INNER JOIN table2 t2 ON t1.id = t2.id 
  INNER JOIN table3 t3 ON t2.group_id = t3.group_id
GROUP BY t1.id, t1.description
...