Query resultaat met product id's die in meerdere categorieën kunnen voorkomen

Status
Niet open voor verdere reacties.

Diniz

Gebruiker
Lid geworden
1 jun 2009
Berichten
62
De database van een webwinkel heeft een tabel met 3 kolommen: categorie id, product id en positie:

[table="class: grid"]
[tr]
[td]categorie_id[/td]
[td]product_id[/td]
[td]positie[/td]
[/tr]
[tr]
[td]16[/td]
[td]195[/td]
[td]3[/td]
[/tr]
[tr]
[td]15[/td]
[td]196[/td]
[td]0[/td]
[/tr]
[tr]
[td]2[/td]
[td]197[/td]
[td]5[/td]
[/tr]
[tr]
[td]15[/td]
[td]197[/td]
[td]1[/td]
[/tr]
[tr]
[td]17[/td]
[td]198[/td]
[td]0[/td]
[/tr]
[tr]
[td]18[/td]
[td]198[/td]
[td]1[/td]
[/tr]
[tr]
[td]17[/td]
[td]199[/td]
[td]0[/td]
[/tr]
[/table]
etc.


Nu wil ik graag als resultaat van een sql query de product id's weergeven die zowel categorie id 17 als categorie id 18 hebben. In de rijen hierboven die ik uit de echte tabel geknipt hebt bijvoorbeeld 198. Volgens mij zal het wel niet al te moeilijk zijn maar ik zit al even te klooien met mijn gebrekkige sql kennis en googlen en zoeken op dit forum heeft me ook nog niet op het juiste spoor gezet, vandaar mijn post hier. Mocht ik niet duidelijk zijn dan hoor ik het graag.
 
Hangt er een beetje vanaf wat je logica is....
Je kan
Code:
Select Product_ID from yourtable where category in (17,18) group by product_id having count(*) = 2

Je kan ook een zelf-join doen
Code:
Select product_id from yourtable x
JOin Yourtable y on x.product = y.product
where x.category = 17
and    y.category = 18

Maar zoals ik al zei, veel hangt er vanaf wat en hoe en hoever flexibel je dingen wil maken.
 
Mijn scriptje er om heen gebouwd, en doet alles wat ik wil. Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan