Daniyal Madmolil :
hellow.I have a tablt product like this
+-------+-------+
| id | name |
+-------+-------+
+-------+-------+
| 1 | shirt |
+-------+-------+
color table like below:
+-------+--------+
| id | color |
+-------+--------+
+-------+--------+
| 1 | red |
+-------+--------+
+-------+--------+
| 2 | yellow |
+-------+--------+
+-------+--------+
| 3 | black |
+-------+--------+
and shirt_color table:
+------------+----------+
| product_id | color_id |
+------------+----------+
+------------+----------+
| 1 | 1 |
+------------+----------+
+------------+----------+
| 1 | 2 |
+------------+----------+
+------------+----------+
| 1 | 3 |
+------------+----------+
I want to write a query to get all products and its colors (but all colors in one array column) like this below :
+-------+-------+---------------+
| pro_id| name | colors |
+-------+-------+---------------+
+------+-------+----------------+
| 1 | shirt |red,yellow,black|
+------+-------+----------------+
zip :
use GROUP_CONCAT:
select a.id as pro_id, a.name,
GROUP_CONCAT ( color ) as colors
from product a inner join shirt_color b on a.id = b.product_id
inner join color c on c.id = b.color_id
group by a.id, a.name