OyvindN Skrevet 14. april 2004 Skrevet 14. april 2004 (endret) Denne har jeg sliti litt med.. Har tabellene: Sang (sang_id) Album (album_id) Album_Sang, (id, *sang_id, *album_id) som knytter disse sammen I tillegg en poeng-tabell: Poeng (poeng_id, poeng, *sang_id) Nå har det seg slik at ikke alle sangene har poeng. Hvordan kan jeg få opp alle låtene i en liste? Med denne spørringa får jeg bare de som har poeng: select s.sang_id, poeng from album_sang as als, album as a, sang as s, poeng as p where s.sang_id = als.sang_id and a.album_id = als.album_id and s.sang_id = p.sang_id Har testa med enkelte left join-setninger, men blir bare tull. Endret 14. april 2004 av OyvindN
LoS Skrevet 14. april 2004 Skrevet 14. april 2004 (endret) Hva er det der a.album_id og s.sang_id greiene, mao, hvorfor har du a. og s. foran der? edit: vil bare si at jeg blir litt forvirra av dem edit2: tror jeg skjønte det nå, *se mere på* edit3: nei, forstår det enda ikke Endret 14. april 2004 av LoS
OyvindN Skrevet 14. april 2004 Forfatter Skrevet 14. april 2004 Skriver s istedetfor sang osv ved "sang as s" Men dette går for det samme: select sang.sang_id, poeng from album_sang, album, sang, poeng where sang.sang_id = album_sang.sang_id and album.album_id = album_sang.album_id and sang.sang_id = poeng.sang_id
???????? Skrevet 14. april 2004 Skrevet 14. april 2004 Det "virker" som du burde endre litt på tabellene dine. Sang burde ha et felt som linkes til et album. Så slipper du å en egen tabell for det. Rydder du litt opp i tabellen blir det letter å joine tabellene. Hvilken SQL server bruker du?
OyvindN Skrevet 15. april 2004 Forfatter Skrevet 15. april 2004 Ok, får teste ut dette. Bruker mysql-front 2.5.
OyvindN Skrevet 15. april 2004 Forfatter Skrevet 15. april 2004 Når jeg tenker meg om, laget jeg tabellen album_sang fordi en sang kan forekomme på flere album..
???????? Skrevet 15. april 2004 Skrevet 15. april 2004 Hva er det du vil hente fra databasen? Hvordan kan jeg få opp alle låtene i en liste? Hvis du bare vil ha en liste med låtene velger du bare SELECT * FROM sang, eller eventuelt select distinct hvis du har dobeltlagringer av låtene - noe du ikke burde ha.
OyvindN Skrevet 15. april 2004 Forfatter Skrevet 15. april 2004 Meninga var å hente en liste med låtene, uansett om de har poeng eller ikke (altså tomt felt).
OyvindN Skrevet 15. april 2004 Forfatter Skrevet 15. april 2004 Fikk det til, inner join og left join var løsninga.
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å