Gå til innhold

Anbefalte innlegg

Hei!

Får opp dobbel data, hva gjør jeg feil?

 

SELECT rombestilling.idbestilling, rombestilling.dato, rombestilling.varighet, rombestilling.kundeid, rombestilling.hotellid, kunde.etternavn, hotell.navn

FROM rombestilling, kunde, hotell

WHERE rombestilling.kundeid = rombestilling.hotellid

Lenke til kommentar
Videoannonse
Annonse

Hei.

 

du har valgt å hente fra 3 tabeller:

FROM rombestilling, kunde, hotell

 

Men du angir kriterier for å koble tabell dataene sammen på bare 1 av de 3 tabellene.

 

WHERE rombestilling.kundeid = rombestilling.hotellid

 

Dersom du skal få ut en og bare en forekomst, så må du også angi hvordan tabellene "kunde" og "hotell" matcher "romtbestilling".

 

F.eks:

 

where rombestilling.kundeid = kunde.kundeid

and rombestilling.hotellid = hotell.hotellid

 

På denne måten får du koblet alle tabellene sammen, og du vil ha kontroll på hva som kommer ut av tabellene dine.

 

Hadde du hatt 2000 poster i rombestilling og 2000 poster i kunde, så ville din måte å spørre på gitt betydelig mye mer enn de doble postene du fikk ut :-)

 

lykke til!

Lenke til kommentar

Å koble tabeller i WHERE er en gammel måte å koble tabeller på, men det fungerer. Ta en titt på joins, vil også anbefale alias på tabellene så blir det ikke så mye å skrive :)

 

F. eks slik (med alias og joins)

SELECT r.idbestilling, r.dato, r.varighet, r.kundeid, r.hotellid, k.etternavn, h.navn
FROM rombestilling AS r
INNER JOIN kunde AS k ON k.kundeid = r.kundeid
INNER JOIN hotell AS h ON h.hotellid = r.hotellid

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...