Weet iemand hoe je met mysql rows naar columns kan krijgen via een query of een andere weg?
Data ziet er nu als volgt uit:
| id | object_id | item_id | val |
| 1 | 1 | 1 | Jan |
| 2 | 1 | 2 | van der |
| 3 | 1 | 3 | Meer |
| 4 | 1 | 4 | hovenstraat 32 |
| 5 | 1 | 5 | 4536 AB |
| 6 | 2 | 1 | Klaas |
| 7 | 2 | 2 | de |
| 8 | 2 | 3 | Vries |
| 9 | 2 | 4 | molenstraat 63 |
| 10 | 2 | 5 | 7823 HK |
Gewenste resultaat:
| Jan | van der | Meer |
| Klaas | de | Vries |
Dus ik heb enkel voornaam tussenvoegsel en achternaam nodig.
Dit is voor een lijstoverzichtje in een python programma.
Ik heb gezocht en kon alleen een query vinden
die wel de waardes in een column zet maar
niet naast elkaar. Zie hieronder:
CREATE VIEW crosstab AS
SELECT max(if(item_id=2,val,' ')) as 'naam',
max(if(item_id=3,val,' ')) as 'tussenvoegsel',
max(if(item_id=4,val,' ')) as 'achternaam'
FROM mab_db.dat
GROUP BY id;
Andere oplossingen zijn ook welkom.
Alvast erg bedankt voor het meedenken.
Data ziet er nu als volgt uit:
| id | object_id | item_id | val |
| 1 | 1 | 1 | Jan |
| 2 | 1 | 2 | van der |
| 3 | 1 | 3 | Meer |
| 4 | 1 | 4 | hovenstraat 32 |
| 5 | 1 | 5 | 4536 AB |
| 6 | 2 | 1 | Klaas |
| 7 | 2 | 2 | de |
| 8 | 2 | 3 | Vries |
| 9 | 2 | 4 | molenstraat 63 |
| 10 | 2 | 5 | 7823 HK |
Gewenste resultaat:
| Jan | van der | Meer |
| Klaas | de | Vries |
Dus ik heb enkel voornaam tussenvoegsel en achternaam nodig.
Dit is voor een lijstoverzichtje in een python programma.
Ik heb gezocht en kon alleen een query vinden
die wel de waardes in een column zet maar
niet naast elkaar. Zie hieronder:
CREATE VIEW crosstab AS
SELECT max(if(item_id=2,val,' ')) as 'naam',
max(if(item_id=3,val,' ')) as 'tussenvoegsel',
max(if(item_id=4,val,' ')) as 'achternaam'
FROM mab_db.dat
GROUP BY id;
Andere oplossingen zijn ook welkom.
Alvast erg bedankt voor het meedenken.