Avatar billede bx Nybegynder
26. marts 2008 - 18:00 Der er 2 kommentarer

Finde produkt der hører til optioner

Hej.

Jeg er igang med at udvikle en webshop hvor hvert produkt har tilknyttet X antal optioner. F.eks. farve, størrelse m.m.

Det er nemt at spore hvilke produkter der har hvilke optioner tilknyttet i og med produkt id er lagret i Produkt_til_option tabellen. Det betyder det er nemt at lave en produktside med de rigtige optioner tilknyttet produktet.

Det svære er den anden vej. Hvilke kombination af optioner er tilknyttet et bestemt produkt. Hvordan laver jeg lige en SQL sætning der finde det ene produkt?

Tabeller:

Produkter
------------------------
ID Navn
01 T-shirt
02 Bluse
------------------------

Optioner
------------------------
ID Navn
01 Grøn
02 Rød
03 XLarge
04 Small
------------------------

Produkt_til_option
------------------------
ID Produkt_id  option_id
01 01(t-shirt) 01(grøn)
02 01(t-shirt) 03(xlarge)
03 02( bluse ) 02(rød)
04 02( bluse ) 04(small)
------------------------

PS. Jeg har prøvet at gøre tingene så klare så mulige og "to the point". Derfor er der færre felter i f.eks produkt tabellen og ingen tabel som bruges som option gruppe med f.eks. størrelse og farve.
Avatar billede arne_v Ekspert
27. marts 2008 - 02:53 #1
SELECT p.navn
FROM produkter p,optioner o1,optioner o2,produkter_til_option pto1,produkter_til_option pto2
WHERE p.id=pto1.produkt_id AND p.id=pto2.produkt_id
      AND pto1.option_id = o1.id AND pto2.option_id = o2.id
      AND o1.navn='Grøn' AND o2.Navn='XLarge'
Avatar billede arne_v Ekspert
30. august 2008 - 02:26 #2
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester