webForumDet fria alternativet

Hämta fler fält från annan tabell...

Databaser & SQL

7 svar · 414 visningar · startad av k0ffe

Medlem sedan maj 2003352 inlägg
Frågan#1

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!

Medlem sedan dec. 19996 721 inlägg
#2

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
Medlem sedan maj 2003352 inlägg
#3

Tack! Det fungerar... Men varför har du kommandot "MAX"? Jag är usel på SQL.

Om jag vill slumpa en bild istället? RAND?

Medlem sedan dec. 19996 721 inlägg
#4

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?

Medlem sedan maj 2003352 inlägg
#5

Ok Ok... Till det här är det Access

Medlem sedan dec. 19996 721 inlägg
#6

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"
Medlem sedan maj 2003352 inlägg
#7

Tack, det fungerar! Men måste det verkligen behöva bli såhär "krångligt"? :)

Medlem sedan dec. 19996 721 inlägg
#8

Jajamen!

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
141 ms — ändringar (db)