2014-10-23 4 views
0

Таблица 1: пользователиMysql внутреннее соединение и фильтр результата

id name 
1 name 1 
2 name 2 

Таблица 2: user_city

user_id city_id 
1  1 
1  2 
2  1 
2  2 

Таблица 3: город

id name_city 
1 HCM 
2 Ha Noi 
3 DA NAng 

Sql меня:

select a.*,c.name_city 
FROM users as a 
INNER JOIN 
user_city as b 
ON b.user_id = a.id 
INNER JOIN city as c 
ON c.id = b.city_id 

Результаты:

id name name_city 

1 name 1 HCM 
2 name 2 Ha Noi 
1 name 1 Ha Noi 
2 name 2 HCM 

Я хочу результат является:

Результаты:

имя идентификатор name_city

1 name 1 HCM,Ha Noi 
2 name 2 HCM,Ha Noi 
+0

Возможный дубликат [Как использовать GROUP BY для конкатенации строк в MySQL?] (Http://stackoverflow.com/questions/149772/how-to-use-group-by-to-concatenate-strings-in-mysql) –

ответ

2

вы можете использовать GROUP_CONCAT И GROUP BY получить результат

SELECT U.id, U.name, GROUP_CONCAT(c.name_city) 
FROM users u 
join user_city uc 
on u.id = uc.user_id 
join city c 
on uc.city_id = c.id 
group by u.id, u.name 
Смежные вопросы