Ik ben bezig om een winkeltje te maken die met attributen werkt. Echter zit ik nu met een probleempje.
Ik heb een cartitemattributevalue tabel. Hier staat per product in welke attribuutwaarden het product heeft en bij welk cartitem deze hoort.
Als de tabel er als hierboven uitziet, dan heb ik 3 dezelfde producten in mijn mandje met verschillende attributen.
Echter als ik nu een product met bepaalde attribuutwaardenid's (bijv 20,23) aan mijn mandje toevoeg die al in het mandje bestaat moet ik controleren of het product al in het mandje zit met de bijbehorende attributen.
Hoe kan ik dit nu controleren? Ik heb al verschillende queries geprobeerd, maar geen enkele was succevol. Het probleem is is dat ik moet controleren of een product met een bepaald productid en bepaalde attributevalueid's al in de tabel bestaat. Als ik bijv doe:
SELECT cartitemid FROM cartitemattributevalueid WHERE productid=20 AND attributevalueid IN (20,23) doe, dan krijg ik ook de cartitemid's van bijv productid=20 en attributevalue= (20,25) terug en dat mag niet.
Is hier een simpele oplossing voor? Ik heb ook al gestoeid met ANY en ALL, maar dat ging ook niet werken.
Ik heb een cartitemattributevalue tabel. Hier staat per product in welke attribuutwaarden het product heeft en bij welk cartitem deze hoort.
cartitemid | productid | attributevalueid |
1 | 2 | 20 |
1 | 2 | 23 |
2 | 2 | 20 |
2 | 2 | 25 |
3 | 2 | 21 |
3 | 2 | 26 |
Als de tabel er als hierboven uitziet, dan heb ik 3 dezelfde producten in mijn mandje met verschillende attributen.
Echter als ik nu een product met bepaalde attribuutwaardenid's (bijv 20,23) aan mijn mandje toevoeg die al in het mandje bestaat moet ik controleren of het product al in het mandje zit met de bijbehorende attributen.
Hoe kan ik dit nu controleren? Ik heb al verschillende queries geprobeerd, maar geen enkele was succevol. Het probleem is is dat ik moet controleren of een product met een bepaald productid en bepaalde attributevalueid's al in de tabel bestaat. Als ik bijv doe:
SELECT cartitemid FROM cartitemattributevalueid WHERE productid=20 AND attributevalueid IN (20,23) doe, dan krijg ik ook de cartitemid's van bijv productid=20 en attributevalue= (20,25) terug en dat mag niet.
Is hier een simpele oplossing voor? Ik heb ook al gestoeid met ANY en ALL, maar dat ging ook niet werken.
[ Voor 17% gewijzigd door RSD op 03-09-2010 19:09 ]