webForumDet fria alternativet

Tacksam för hjälp med en beräknande underfråga.

Databaser & SQL

1 svar · 490 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag har en sql som ser ut så här:


SELECT 
f.id AS forumId, 
f.hits, 
t_Forum_Kategori.kategori, 
f.katId, 
t_Forum_Kategori.moderat, 
f.nick, 
f.datum, 
f.orginal, 
f.icon, 
f.rubrik, 
t_Forum_Kategori.beskrivning
FROM 
t_Forum_Kategori 
LEFT JOIN 
t_Forum AS f 
ON t_Forum_Kategori.id = f.katId
WHERE 
(f.id In 
(select top 5 id 
from t_forum 
where id = f.id 
order by datum desc ) 
AND
 (f.orginal)=True)
ORDER BY 
t_Forum_Kategori.kategori;

Detta fungerar ju kanon, men jag undrar går det inte att få in en underfråga
som beräknar hur många svar det finns?

f.id = f.svarPa and f.orginal=false

Tacksam för förslag.

[REDIGERAT]
Jag försöker så här, inga error men inget räknande heller

SELECT 
f.id AS forumId, 
f.hits, 
t_Forum_Kategori.kategori, 
f.katId, 
t_Forum_Kategori.moderat, 
f.nick, 
f.datum, 
f.orginal, 
f.icon, 
f.rubrik, 
t_Forum_Kategori.beskrivning,
 (SELECT COUNT(*) FROM t_Forum  WHERE  t_Forum.id= t_Forum.svarPA ) AS Antal
FROM 
t_Forum_Kategori 
LEFT JOIN 
t_Forum AS f ON 
t_Forum_Kategori.id = f.katId
WHERE
f.id In 
(select top 5 id from t_forum 
 where id = f.id 
order by datum desc ) 
AND (f.orginal)=True)
ORDER BY 
t_Forum_Kategori.kategori;

Är jag helt fel ute, eller går det inte att göra det med denna sql?

Medlem sedan mars 20011 880 inlägg
#2

Min dåre...
skall ju vara

(SELECT COUNT(*) FROM t_Forum  WHERE  t_Forum.svarPA= f.id ) AS Antal

.. nu blev det bra.

251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
114 ms — ändringar (db)