|
| Kun føste række i et join Fra : Ladmorillo | Vist : 454 gange 200 point Dato : 08-08-08 12:48 |
|
Hej
Jeg har to tabeller, en med biler og en med billeder af disse biler. Billeder tabellen har en fremmednøgle der peger på biler og billeder har et sorteringsnummer, sådan at de har en specifk rækkefølge per bil.
Biler:
[bil_id] [navn]
1 bmw
2 skoda
3 audi
Billeder
[billed_id] [filnavn] [sortering] [bil_id]
1 bmwa.gif 3 1
2 bmwb.gif 2 1
3 bmvc.gif 1 1
4 skodaa.gif 1 2
5 skodab.gif 2 2
6 skodac.gif 3 2
7 audia.gif 2 3
8 audib.gif 1 3
Jeg har nu brug for et SQL select statement der giver mig en liste med alle biler samt en ekstra kolonne per bil der giver mig filnavnet på det billede der har det laveste sorteringsnummer.
Altså et kald der på overnstående tabeller resultere i:
[bil_id] [navn] [billede_filnavn_med_mindste_sorteringsnummer]
1 bmw bmvc.gif
2 skoda skodaa.gif
3 audi audib.gif
Jeg har prøvet mig frem men kan ikke få det jeg vil... det bliver vel noget med et join, group by og en order by i et nested kald... eller lignende.
Et kald som
"select bil_id, navn, filnavn from biler inner join billeder on biler.bil_id = billeder.billed_id"
giver mig jo en bilrække per billede og derfor alt for meget info. Jeg skal bare bruge en enkelt række per bil med filnavn på det første billede.
Anyone?
| |
| Kommentar Fra : ajuul |
Dato : 08-08-08 12:58 |
|
Hej Ladmorillo.
Sådan her:
Kode select Biler.bil_id, Biler.navn, Billeder.filnavn
from Biler left join Billeder on Biler.bil_id = Billeder.bil_id
where (Billeder.sortering in (select min(sortering) from billeder group by bil_id))
group by Biler.bil_id, Biler.navn, Billeder.filnavn; |
Med venlig hilsen
ajuul
| |
| Kommentar Fra : ajuul |
Dato : 08-08-08 13:52 |
|
Undskyld.
Det var vist volapük.
Jeg prøver lige igen!
Undskyld /ajuul
| |
| Kommentar Fra : ajuul |
Dato : 08-08-08 14:19 |
|
Så var den der.
Værsågod:
Kode SELECT Biler.bil_id, Biler.navn, Billeder.filnavn
FROM Biler LEFT JOIN Billeder ON Biler.bil_id=Billeder.bil_id
WHERE (Billeder.bil_id, Billeder.sortering) IN (select Billeder. bil_id, min(Billeder.sortering) from Billeder group by bil_id)
GROUP BY Biler.bil_id, Biler.navn, Billeder.filnavn; |
Med venlig hilsen
ajuul
| |
|
virker desværre ikke for mig.
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|