Помогите составить запросик

disaster

Новичок
Помогите составить запросик

Приветствую!

Имеется 3 таблицы (2 основных и связующая) - A, B, A_B

A (id,.......)
A_B (ext_a_id,ext_b_id,value)
B (id,.......)

Допустим вот с таким содержим

---A------------
15 ,....
5 ,....
-----------------

------A_B------
15 ,1,value1
15 ,2,value2
5 ,1,value1
5 ,2,value2
-----------------

-------B--------
1 ,....
2 ,....
-----------------

Тогда такой запрос


SELECT `A`.`id`,`A_B`.`value`,
FROM `A`
LEFT JOIN `A_B` ON ( `A`.`id`=`A_B`.`ext_a_id` )
LEFT JOIN `B` ON (`A_B`.`ext_b_id`=`B`.`id` )


возвращает 4 строки

15,value1
15,value2
5,value1
5,value2


а как сделать чтобы возвращались 2 строки

15,value1,value2
5,value1,value2

Т.е. объединить таблицы так чтобы `A`.`id` не дублировались и добавлялись "связанные" valueN из `A_B` ???
 

disaster

Новичок
Автор оригинала: alpine
или GROUP BY + GROUP_CONCAT
GROUP_CONCAT - то что надо!!! Большое спасибо


SELECT `A`.`id`,GROUP_CONCAT(`A_B`.`value` SEPARATOR ', ')

FROM `A`
LEFT JOIN `A_B` ON ( `A`.`id`=`A_B`.`ext_a_id` )
LEFT JOIN `B` ON (`A_B`.`ext_b_id`=`B`.`id` )
GROUP BY `A`.`id`


Тему можно закрывать!
 
Сверху