2015-09-01 2 views
1

Мои таблицыLEFT JOIN с несколькими значениями

functions_groups 
+---------------+----------+ 
| function_name | group_id | 
+---------------+----------+ 
| function1  | 46  | 
| function1  | 47  | 
| function2  | 46  | 
+---------------+----------+ 

groups 
+----------+------------+ 
| group_id | group_name | 
+----------+------------+ 
| 46  | Group46 | 
| 47  | Group47 | 
+----------+------------+ 

Выходные

+-----------+----------------------+ 
| Function | Groups    | 
+-----------+----------------------+ 
| function1 | Group46, Group47  | 
| function2 | Group46    | 
+-----------+----------------------+ 

Мой запрос пока еще (что дает мне пустые строки/ячейки)

SELECT 
    fg.function_name, 
    GROUP_CONCAT(DISTINCT g.group_name SEPARATOR ', ') AS group_names 
FROM functions_groups fg 
LEFT JOIN groups g 
    ON g.group_id = fg.group_id 

Как я могу исправить это, чтобы захватить несколько значений (разделенных запятыми) из левого соединения?

ответ

5

Я написал для вас запрос БД. Я надеюсь, что это будет решить вашу проблему:

запрос

SELECT 
    f.function_name 'Function', GROUP_CONCAT(DISTINCT g.group_name) 'Groups' 
FROM 
    functions_groups f 
     LEFT JOIN 
    groups g ON g.group_id = f.group_id 
GROUP BY function_name; 
Смежные вопросы