Gå til innhold

Er det mulig med JOIN på tre tabeller?


Anbefalte innlegg

Jeg sitter og prøver å lage en oversikt over CD-samlingen min i PHP og MySQL. Jeg har tre tabeller: artist, sanger, album. artistID er med i alle tabellene.

 

Hvordan får jeg da til å skrive ut alle sangene sammen med både artistnavn og albumnavn i én spørring?

Jeg har prøvd disse tre, men ingen av dem fungerer slik jeg vil:

SELECT * FROM sanger INNER JOIN artist, album ON sanger.artistID = artist.artistID, sanger.artistID = album.artistID

SELECT * FROM sanger INNER JOIN artist, album ON sanger.artistID = artist.artistID = album.artistID

SELECT * FROM sanger INNER JOIN artist ON sanger.artistID = artist.artistID, album ON sanger.artistID = album.artistID

 

Er jeg på villspor?

Endret av endrebjorsvik
Lenke til kommentar
Videoannonse
Annonse

Er trøtt nå, men regner med at det er en modifisering av den siste du ønsker:

SELECT * FROM sanger INNER JOIN artist ON sanger.artistID = artist.artistID inner join album ON sanger.artistID = album.artistID

 

Ellers må jeg bare få påpeke at det å lage et musikkarkiv er en tidkrevende prosess, og den løsningen du har valgt her fungerer i en del tilfeller dårlig, bl a samlealbum og klassisk musikk.

Endret av roac
Lenke til kommentar

Ahh... jeg må skrive INNER JOIN to gang altså. :)

 

Jeg har ikke så fryktelig mange plater (ca. 30), så det kommer ikke til å ta så ufattelig mye tid. Jeg gjør det mest for å lære meg PHP og MySQL.

 

Edit: Hvilke andre strukturer ville vært bedre?

Edit2: På tide å legge seg snart ja.

Endret av endrebjorsvik
Lenke til kommentar
Ahh... jeg må skrive INNER JOIN to gang altså. :)

 

Jeg har ikke så fryktelig mange plater (ca. 30), så det kommer ikke til å ta så ufattelig mye tid. Jeg gjør det mest for å lære meg PHP og MySQL.

 

Edit: Hvilke andre strukturer ville vært bedre?

Edit2: På tide å legge seg snart ja.

6322926[/snapback]

Platearkiv har vært diskutert her flere ganger. Et av de største problemene er knytningene artist - plate og artist - låt. Fordi Det kan være flere artister, det kan sågar være flere forskjellige artister, og den samme artisten kan ha skiftet navn, en av de mer kjente i Norge her er vel Sway/Espen Lind, men vi har også slikt som Silje/Silje Nergaard. Videre, når du trekker inn grupper så varierer gruppemedlemsskapet over tid, f eks er jo ikke Roger Waters med i Pink Floyd lenger.

 

Med andre ord, det er en hel haug utfordringer, og ved tid og anledning kommer jeg garantert til å fordype meg i dette :)

Lenke til kommentar

Spørringen måtte forresten være slik for at alle sangene fra én artist ikke skulle bli printet ut på alle albumene til den artisten, men det var kanskje litt vanskelig å vite når du ikke visste tabellstrukturen. :)

SELECT * FROM sanger INNER JOIN artist ON sanger.artistID = artist.artistID INNER JOIN album ON sanger.albumID = album.albumID

Endret av endrebjorsvik
Lenke til kommentar
Jeg er ihvertfall temmelig fornøyd hittil. :)

http://endre.hotserv.dk/

6331825[/snapback]

Enkelt og helt greit som en test og for å lære seg. Likte forresten det svært minimalistiske designet, det er helt etter min stil.

 

Tenke, jeg har en kveld og natt på et hotell i Bergen neste uke, kanskje jeg skal sette meg ned med penn og papir og begynne systemeringen av en mitt arkiv.

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