webForumDet fria alternativet

Hämta nyhet och räkna kommentarer

Databaser & SQL

2 svar · 161 visningar · startad av SoMeOnE

Medlem sedan nov. 200254 inlägg
Frågan#1

Jag har försökt att hämta ut nyheter och räkna alla kommentarer som finns till den nyheten. Det enda problemet är att den inte hämtar ut nyheten ifall det inte finns några kommentarer. Jag skulle vilja att den skrev ut 0 då... Jag har mysql 4 och inget stöd för subs. Går det att göra inner joins eller selectsfrån flera tabeller utan att den måste hitta ngt i alla tabellerna? alltså bara hämta ut ett värde från nyheterna och ifall det finns några kommentarer, räkna dem?

Medlem sedan dec. 200012 464 inlägg
#2
select newsid, count(comment) as comments
from news left join comments
on news.newsid = comments.newsid
group by newsid
Medlem sedan nov. 200254 inlägg
#3

Jag får en känsla av att jag inte gjorde det på det smidigaste sättet men det fungerade iaf när jag gjorde som du sa. Bara det att jag inte riktigt vet hur man ska få till where saken. så här blev koden:

		SELECT COUNT(x2dkommentarer.ID) AS AntalKommentarer,
		x2dnyheter.\*, x2danvändare.Nick,
		x2danvändare.ID AS ID2 from x2dnyheter 
		INNER JOIN x2danvändare ON x2dnyheter.Av = x2danvändare.ID  
		LEFT JOIN x2dkommentarer ON x2dnyheter.ID = x2dkommentarer.NyhetsID
		WHERE x2dnyheter.Tillvilkensida = '".$klannr."' AND x2dkommentarer.ID IS NULL OR 
		x2dnyheter.Tillvilkensida = '".$klannr."' AND x2dkommentarer.Tillvilkensida = '".$klannr."'
		GROUP BY x2dnyheter.ID, x2dkommentarer.NyhetsID
		ORDER BY x2dnyheter.ID DESC LIMIT 0,5"
499 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
182 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)