k0ffeMedlem sedan maj 2003352 inlägg Hallu. Jag har lite problem när jag vill visa en bild från varje bildarkiv i bildarkivets index.
Jag har denna fråga nu:
SELECT *, (SELECT COUNT(ID) FROM bilder WHERE bildarkiv.ID = bilder.arkivID) as Bilder FROM bildarkiv ORDER BY bildarkiv.datum desc
Med jag vill alltså, förutom antalet bilder, också få tag i fältet "bild" ur bilder-tabellen så jag kan visa denna i mitt index vid bildarkivets rubrik.
Nån som är bättre på SQL än mig?
Tacksam för svar!
emissionMedlem sedan dec. 19996 721 inlägg En variant som kanske duger..
SELECT ba.ID,ba.datum,MAX(b.bild) as bild, COUNT(*) as Bilder FROM bilder b, bildarkiv ba WHERE ba.ID = b.arkivID GROUP BY ba.ID,ba.datum ORDER BY ba.datum desc
k0ffeMedlem sedan maj 2003352 inlägg Tack! Det fungerar... Men varför har du kommandot "MAX"? Jag är usel på SQL.
Om jag vill slumpa en bild istället? RAND?
emissionMedlem sedan dec. 19996 721 inlägg
k0ffe skrev:
Tack! Det fungerar... Men varför har du kommandot "MAX"?
För att vi på något sätt måste begränsa urvalet så att endast en bild från varje kategori kommer med. Med MAX får vi den bild vars bildnamn har det högsta värdet (eftersom det är en text blir det den som kommer sist i alfabetisk ordning). Med MIN kan vi vända på steken.
k0ffe skrev:
Om jag vill slumpa en bild istället? RAND?
Då blir det en hel del mer avancerat. Vad använder du för "databasmotor"? Access? MySQL?
k0ffeMedlem sedan maj 2003352 inlägg Ok Ok... Till det här är det Access
emissionMedlem sedan dec. 19996 721 inlägg Detta kräver lite hjälp från ASP-sidan, och jag har utgått från att du har en ID-kolumn i bildtabellen också.
Randomize
seed = (CInt(1000 * Rnd) + 1) * -1
SQL="SELECT ba.ID,ba.datum,mid(MAX(left(cstr(int(9000*rnd(b.ID*" & seed & ")+1000)),4) + b.bild),5) as bild, COUNT(*) as Bilder FROM bilder b, bildarkiv ba WHERE ba.ID = b.arkivID GROUP BY ba.ID,ba.datum ORDER BY ba.datum desc"
k0ffeMedlem sedan maj 2003352 inlägg Tack, det fungerar! Men måste det verkligen behöva bli såhär "krångligt"? :)