Gå til innhold

Hva blir skrevet ut, og hvorfor?


Anbefalte innlegg

  Hei, jeg sitter å ser litt på SQL delen av TIDLIGERE eksamen i databaser. Jeg skjønner ikke alt 100% men prøver meg frem, men står nå litt fast. Her er "databasen" og sql spørringen som kjøres: 2jfzmrp.png

 

Jeg har ikke vært borti slike oppgaver før der jeg har spørringen og skal finne resultat, så muig min fremgangsmåte er helt dust. Men det er slik jeg går fram: Først markerer jeg alle iNavn, og kNavn. Ettersom det er en Where setning som vil at alle LKP.lId = l.lId skal være med marker jeg alle lkp.id og l.lid siden alle stemmer overrens. Så kommer andre where statment k.kid and kNavn LIKE '%RAM%' dette mener jeg resulterer i svaret mitt på bilde nedenfor?

m1zqb.png

 

 

Hvis alt hittil er rett, tolker jeg siste linje "order by inavn, knavn" slik at dette blir resultatet:

 

deal ddr3 32gb ram
mpx ddr3 16 gb ram
 
Men det endelige resultatet er dette(kjørte spørringen for å sjekke): 
Deal ddr3 32gb ram
Deal ddr3 32 gb ram
MPX ddr3 16 gb ram

 

Hva er grunnen til at deal kommer opp 2 ganger? hvis jeg har kommet riktig fram til aktive rader skjønner jeg fremgangsmåten... men når det kommer til å lese av resultatet sliter jeg. Noen som kan forklare meg dette :/?

Endret av bchpls
Lenke til kommentar
Videoannonse
Annonse

Både linje 3 og 4 i LKP-tabellen vil matche, dermed får du 2 like linjer i resultatet. Bruk 'SELECT DISTINCT ...' for å unngå dette.

Ja vet distinct unngår dette, men om jeg forstår det rett: siden "deal" har iid l2 og l2 er 2 ganger under lkp med kid k1 er dette grunnen til at deal ddr3.... kommer 2 ganger?

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...