Avatar billede mac10 Nybegynder
06. oktober 2008 - 12:28 Der er 8 kommentarer og
1 løsning

En INNER JOIN der vil noget?

Hej alle

Jeg har leget lidt med left join og inner join, og jeg skal have hentet noget data ud nu og har ingen idé om hvordan jeg gør.

Jeg har en tabel med medlemmer, og et med post. I den med post er der en afsender og en modtager.

Jeg skal have f.eks. skrevet følgende ud:


#ID - Afsender - Modtager
224 - Peter - Christian
225 - Peter - Morten
226 - Morten - Christian

Altså jeg skal have id´et på beskeden og hente navnene fra en anden tabel:

Profiler
- id
- navn

Beskeder
- id
- afsender (profil id)
- modtager (profil id)

Hvordan henter jeg så den henter afsender og modtagers id ud og udskriver navnene fra tabellen Profiler?

Håber i forstår :)
Avatar billede erikjacobsen Ekspert
06. oktober 2008 - 12:36 #1
SELECT beskeder.id,p1.navn,p2.navn FROM beskeder
    INNER JOIN profiler as p1 ON beskeder.afsender=p1.id
    INNER JOIN profiler as p2 ON beskeder.afsender=p2.id
--utestet
Avatar billede erikjacobsen Ekspert
06. oktober 2008 - 12:37 #2
Ok - den ene "afsender" skal være "modtager"
Avatar billede mac10 Nybegynder
06. oktober 2008 - 14:04 #3
Okay, men du skriver det som p1 og p2 er tabeller, men det er de jo ikke?
SELECT beskeder.id, >> p1.navn,p2.navn <<

Er det meningen?
Avatar billede erikjacobsen Ekspert
06. oktober 2008 - 15:02 #4
Det er bare tabellen profiler, der har fået et alias i forespørgslen. Det er nødvendigt, når den skal bruges to gange.
Avatar billede mac10 Nybegynder
06. oktober 2008 - 15:10 #5
Ja okay det giver så mening.

Hvilket navn er den så tildelt når den skal udskrives?

Hvis jeg giver den en while($profil = mysql_fetch_array($query))

Så udskriver jeg den bare som $profil['p1'] ? Eller er jeg helt gal på den
Avatar billede erikjacobsen Ekspert
06. oktober 2008 - 16:00 #6
SELECT beskeder.id as id,p1.navn as modtagernavn,p2.navn as afsendernavn FROM beskeder  ...

Du skal nok give dem navne så de kan skelnes.
Avatar billede mac10 Nybegynder
06. oktober 2008 - 16:43 #7
Ja det fandt jeg ud af, for den drillede :o)

Mange tak for hjælpen Erik. Smid venligst et svar, eller vil du stadigvæk ikke have point? :)
Avatar billede erikjacobsen Ekspert
06. oktober 2008 - 18:39 #8
Nej tak.
Avatar billede mac10 Nybegynder
10. november 2010 - 12:27 #9
luk
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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