/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL - flere joins til samme tabel
Fra : Henrik Stidsen


Dato : 14-02-07 17:01

Jeg har en tabel hvor flere af felterne refererer til samme felt i en
anden tabel. Jeg vil nu gerne lave et udtræk hvor jeg får de værdier
de henviser til istedet for blot det ID der står i feltet.

F.eks:
tabel1:
id
file1id
file2id

filtabel:
id
filnavn

Hvis både file1id og file2id refererer til id feltet i filtabel,
hvordan laver jeg så en join der henter filnavn for begge felter?


 
 
Jens Gyldenkærne Cla~ (14-02-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 14-02-07 17:10

Henrik Stidsen skrev:

> Hvis både file1id og file2id refererer til id feltet i
> filtabel, hvordan laver jeg så en join der henter filnavn for
> begge felter?

Du bruger et alias:

SELECT t.id, f1.filnavn, f2.filnavn
FROM tabel1 t
INNER JOIN filtabel f1
   ON t.file1id = f1.id
INNER JOIN filtabel f2
   ON t.file1id = f2.id


Hvis du ikke er sikker på at begge felter er udfyldt, kan du bruge
LEFT JOIN i stedet for INNER JOIN (for at undgå at en manglende
underpost eliminerer en post i resultatet).

Ovenstående fungerer i MSSQL og bør også fungere i MySQL. Hvis det
ikke fungerer, så prøv at oprette aliaser eksplicit med AS:

   SELECT ...
   FROM tabel1 AS t ...
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Henrik Stidsen (15-02-2007)
Kommentar
Fra : Henrik Stidsen


Dato : 15-02-07 09:58

On Feb 14, 5:09 pm, Jens Gyldenkærne Clausen <j...@gyros.invalid>
wrote:
> Du bruger et alias:

> SELECT t.id, f1.filnavn, f2.filnavn
> FROM tabel1 t
> INNER JOIN filtabel f1
> ON t.file1id = f1.id
> INNER JOIN filtabel f2
> ON t.file1id = f2.id

Det var lige det der skulle til - jeg havde ellers prøvet med alias
men havde åbenbart ikke gjort det rigtigt :(

Tak for hjælpen.


Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste