Avatar billede knutbl Nybegynder
16. oktober 2004 - 11:02 Der er 6 kommentarer og
1 løsning

INNER JOIN med mange tabeller, hvordan

Hei!
Jeg sliter med å få en SQL-setning slik jeg vil ha den. Har aldri brukt JOIN før, og skal nå kombinere mange tabeller. Får til å kombinere to tabeller, men vil gjerne ha med alle.

Dette er tabellene mine
personalia (hovedtabell)
choose
inmystereo
top5list

Jeg skal trekke ut alle felt fra disse tabellene.
Alle har feltet "id" felles.

Hvordan skriver jeg denne SQL setningen?
Avatar billede cpufan Juniormester
16. oktober 2004 - 11:17 #1
kan du ikke bare lave en group by id?
Select * from personalia,choose,inmystereo,top5list group by id
Avatar billede hmortensen Nybegynder
16. oktober 2004 - 11:24 #2
SELECT * FROM personalia AS p, choose AS c, inmystereo AS i, top5list AS t WHERE p.id = c.id AND p.id = i.id AND p.id = t.id
Avatar billede knutbl Nybegynder
16. oktober 2004 - 11:49 #3
hmortensen og eventuelt andre:
(Først; jeg er ny på dette...)
Det du skriver virker bra. Takk.
Det som blir problemet for meg, er at du har en WHERE inne i setningen.
Dette er en del av en side for et rockeband, og denne siden skal være en biografi for hvert enkelt bandmedlem. Brukere klikker på bildet av den de vil vite mer om, og sendes til denne aktuelle siden med riktig id.
Hvert bandmedlem har en id (tall fra 1 til og med 4).

Jeg skal kunne hente ut id = 1 hvis noen klikker på bildet med id nr 1 o.s.v..
Jeg må altså ha en WHERE linje der jeg spesifiserer dette.
I mitt totabells-opplegg lagde jeg en variabel "envariabel" som inneholdt Request.Quesrystring("member") og i sql'en skrev jeg
WHERE personalia.id = envariabel;

Hvordan får jeg i ditt eksempel trukket ut den aktuelle id'en som det spørres etter?
Avatar billede hmortensen Nybegynder
16. oktober 2004 - 11:51 #4
SELECT * FROM personalia AS p, choose AS c, inmystereo AS i, top5list AS t WHERE p.id = c.id AND p.id = i.id AND p.id = t.id AND p.id = " & variable
Avatar billede knutbl Nybegynder
16. oktober 2004 - 11:52 #5
woops!
Fant det ut helt selv!
La bare til
AND p.id = envariabel;

Kan du gi et SVAR, så skal du få points, hmortensen!

Tusen takk! Dette har jeg brukt lang tid på!
Avatar billede cpufan Juniormester
16. oktober 2004 - 11:53 #6
"SELECT * FROM personalia AS p, choose AS c, inmystereo AS i, top5list AS t WHERE p.id = c.id AND p.id = i.id AND p.id = t.id AND p.id = " & envariabel
Avatar billede hmortensen Nybegynder
16. oktober 2004 - 11:53 #7
Det var så lidt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester