/ Forside/ Teknologi / Udvikling / SQL / Spørgsmål
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
Kun føste række i et join
Fra : Ladmorillo
Vist : 453 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

Kommentar
Fra : Ladmorillo


Dato : 10-08-08 16:31

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.
Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407943
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste