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