Knebba Skrevet 22. juni 2006 Del Skrevet 22. juni 2006 (endret) Har 2 mySqltabeller som skal brukes i en webshop. I den ene(varer) er alle varene lagret, med varepris, varenavn, en unik id o.s.v. den andre(handlekurver) er for handlekurver, den har et felt med unike ider, en med session id og en med vare id for en vare som er valgt. når jeg skal skrive ut handlekurven tenkte jeg at vareid i handlekurver skulle hente ut informasjon fra tabellen varer. har jeg forstått rett skal det i det tilfellet brukes LEFT JOIN? hvordan ser en slik spørring ut? Endret 22. juni 2006 av kennteh Lenke til kommentar
ofredstie Skrevet 23. juni 2006 Del Skrevet 23. juni 2006 Du bør bruke INNER JOIN. Og det er et mange til mange forhold mellom handlekurv og vare (man bør ha muligheten for å velge antall av en vare, f.eks. to 1GB minnebrikker), så hvis db'en din har en struktur alla dette: CREATE TABLE handel ( handel_id INT(8) AUTO_INCREMENT, handel_dato DATE NOT NULL, session_id INT(20) NOT NULL, -- CONSTRAINT HANDEL_PK PRIMARY KEY (handel_id) ); CREATE TABLE vare ( vare_id INT(8) AUTO_INCREMENT, vare_navn VARCHAR(30) NOT NULL, vare_pris FLOAT(6,2) NOT NULL, -- CONSTRAINT VARE_PK PRIMARY KEY (vare_id) ); CREATE TABLE vare_handel ( vh_id INT(12) AUTO_INCREMENT, vare_id INT(8) NOT NULL, handel_id INT(8) NOT NULL, kvantitet INT(4) NOT NULL, -- CONSTRAINT VARE_HANDEL_PK PRIMARY KEY (vh_id), -- CONSTRAINT VARE_HANDEL_FK_TO_VARE FOREIGN KEY (vare_id) REFERENCES vare (vare_id), CONSTRAINT VARE_HANDEL_FK_TO_HANDEL FOREIGN KEY (handel_id) REFERENCES handel (handel_id) ); så vil en spørring alla dette løse problemet ditt: SELECT h.handel_id, v.vare_id, v.vare_navn, v.vare_pris, vh.kvantitet FROM handel h INNER JOIN vare_handel vh USING (handel_id) INNER JOIN vare v USING (vare_id) WHERE h.handel_id = 1; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå