webForumDet fria alternativet
Logga in / Bli medlem

Hjälp med maffig SQL-sats!

Databaser & SQL

3 svar · 508 visningar · startad av Annakay

Medlem sedan sep. 2003143 inlägg
Frågan#1

Jag har ett bildgalleri där varje bild tillhör en kategori/mapp och en del bilder har kommentarer. Bildgalleriet ska listas genom att varje kategori/mapp ska illustreras av en slumpvald bild från det galleriet. Dessutom ska det listas under bilden hur många bilder som finns i kategorin/mappen och antal kommentarer. Hänger ni med? (Se bifogad illustration)

Följande tabeller finns:
-Kommentarer-
ID
user
kommentar
datum
bildID

-Bilder-
ID
user
folder
bildnamn

-Kategorier-
ID
parent
namn
user

Jag måste alltså välja ut kategorierna, en slumpvald bild för varje kategori, hur många bilder varje kategori har och hur många kommentarer bilderna har i varje kategori.

Har suttit läääänge och knåpat men jag får inte ihop det. Kan någon jättevänlig själ hjälpa...? Pleeease...

webforum_ill.gif
Medlem sedan maj 200010 687 inlägg
#2

Nåt sånt här kanske skulle funka...

select
	cat.Name,
	rndimg.Whatever,
	(select count(*) from Image img
	where img.CategoryId = cat.CategoryId) as ImageCount,
	(select count(*) from Comment com
	where exists (
		select * from Image img
		where img.CategoryId = cat.CategoryId
		and com.ImageId = img.ImageId
	)) as CommentCount
from
	Category cat
left outer join
	Image rndimg on rndimg.ImageId = (
		select top 1 img.ImageId from Image
		where img.CategoryId = cat.CategoryId
		order by newid()
	)
order by
	cat.Name
Medlem sedan sep. 2003143 inlägg
#3

Tack för det snabba svaret! Modifierade koden lite till rätt tabell- och fältnamn och koden exekveras utan fel MEN fälten ImageCount och CommentCount visar bara 0...

Medlem sedan maj 200010 687 inlägg
#4

Visa ett exempel så kanske jag eller någon annan kan hjälpa dig.

262 ms totalt · 4 externa anrop · v20260731065814-full.05830320
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)