Ik zit met de volgende query in m'n maag. Ik heb een tabel (view, eigenlijk) met in het kort de volgende kolommen:
person_id, product_id, date
Het gaat om gekochte producten op een datum. Personen kunnen natuurlijk meerdere producten kopen (graag zelfs) en ook meerdere keren hetzelfde product, dat maakt allemaal niet uit. Voorbeeldrijen zouden kunnen zijn (1, a, '1-1-2009'), (1, b, '2-2-2009'), (1, c, '3-3-2009'), (2, a, '1-1-2009'), (2, b, '2-2-2009'), (3, b, '3-3-2009'), etc.
Wat ik nu in een view wil toveren is van elk persoon het eerste en tweede gekochte product, liefst naast elkaar in verschillende kolommen:
person_id, product_id_1, product_id_2
De rest van de producten maakt me niet uit. Ik wil een overzicht van de eerste twee gekochte producten per persoon, zeg maar.
Het gaat om mysql 5, er kunnen geen subselects in de view definitie voorkomen, dat moeten dus sub-views worden. Ik heb zelf wel per persoon het eerst gekochte product boven water (simpel met een min(date) en group by person_id) maar ik kom niet aan een view/query met het tweede product. Ik probeer dan iets van where date > min(date) en dan groeperen maar dat komt toch niet op het juiste resultaat uit.
Het hoeft alleen in mysql te werken, ANSI zou mooi zijn maar is zeker geen vereiste. Heeft iemand een tip over waar ik zou kunnen zoeken om dit op te lossen?
Dank!
person_id, product_id, date
Het gaat om gekochte producten op een datum. Personen kunnen natuurlijk meerdere producten kopen (graag zelfs) en ook meerdere keren hetzelfde product, dat maakt allemaal niet uit. Voorbeeldrijen zouden kunnen zijn (1, a, '1-1-2009'), (1, b, '2-2-2009'), (1, c, '3-3-2009'), (2, a, '1-1-2009'), (2, b, '2-2-2009'), (3, b, '3-3-2009'), etc.
Wat ik nu in een view wil toveren is van elk persoon het eerste en tweede gekochte product, liefst naast elkaar in verschillende kolommen:
person_id, product_id_1, product_id_2
De rest van de producten maakt me niet uit. Ik wil een overzicht van de eerste twee gekochte producten per persoon, zeg maar.
Het gaat om mysql 5, er kunnen geen subselects in de view definitie voorkomen, dat moeten dus sub-views worden. Ik heb zelf wel per persoon het eerst gekochte product boven water (simpel met een min(date) en group by person_id) maar ik kom niet aan een view/query met het tweede product. Ik probeer dan iets van where date > min(date) en dan groeperen maar dat komt toch niet op het juiste resultaat uit.
Het hoeft alleen in mysql te werken, ANSI zou mooi zijn maar is zeker geen vereiste. Heeft iemand een tip over waar ik zou kunnen zoeken om dit op te lossen?
Dank!