Hallo,
Ik wil graag in een MySQL-query kolommen uit verschillende rijen die bij elkaar horen, in één kolom aan elkaar plakken. Laat ik mijn probleem meteen maar beschrijven aan de hand van een voorbeeld, anders wordt het niks.
Ik heb de volgende tabellen:
Ik voer nu de volgende query uit:
Het resultaat hiervan is bijvoorbeeld:
Ik zou nu graag de waarden van de kolom catNaam binnen de query per rij uit de tabel items aan elkaar willen plakken, zodat het resultaat als volgt wordt:
Dit kan ik immers veel makkelijker in een programmeertaal verwerken, dan het bovenste resultaat.
Mijn vraag is dus: Is dit mogelijk en zo ja, hoe?
Alvast heel erg bedankt!
Ik wil graag in een MySQL-query kolommen uit verschillende rijen die bij elkaar horen, in één kolom aan elkaar plakken. Laat ik mijn probleem meteen maar beschrijven aan de hand van een voorbeeld, anders wordt het niks.
Ik heb de volgende tabellen:
- items: een lijst van items
- cats: een lijst van categorieën
- items_cats: koppeling van items aan één of meerdere categorieën
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| CREATE TABLE `items` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT , `naam` VARCHAR( 32 ) NOT NULL , PRIMARY KEY ( `id` ) ) CREATE TABLE `cats` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT , `naam` VARCHAR( 32 ) NOT NULL , PRIMARY KEY ( `id` ) ) CREATE TABLE `items_cats` ( `item_id` INT( 10 ) NOT NULL , `cat_id` INT( 10 ) NOT NULL , PRIMARY KEY ( `item_id` , `cat_id` ) ) |
Ik voer nu de volgende query uit:
code:
1
2
3
4
| SELECT items.naam AS itemNaam, cats.naam AS catNaam FROM items, cats, items_cats WHERE items.id = items_cats.item_id AND cats.id = items_cats.cat_id |
Het resultaat hiervan is bijvoorbeeld:
[b]itemNaam catNaam[/b] auto sport auto verkeer voetbal sport
Ik zou nu graag de waarden van de kolom catNaam binnen de query per rij uit de tabel items aan elkaar willen plakken, zodat het resultaat als volgt wordt:
[b]itemNaam catNaam[/b] auto sport, verkeer voetbal sport
Dit kan ik immers veel makkelijker in een programmeertaal verwerken, dan het bovenste resultaat.
Mijn vraag is dus: Is dit mogelijk en zo ja, hoe?
Alvast heel erg bedankt!