Gå til innhold

hente info fra en tabell ved hjelp av en annen


Anbefalte innlegg

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 av kennteh
Lenke til kommentar
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...