webForumDet fria alternativet

antal kommentarer

Databaser & SQL

8 svar · 481 visningar · startad av Tonyboy

Medlem sedan jan. 200554 inlägg
Frågan#1

Hej!

Jag har en SQL-sats där jag förutom att visa nyheter(tblNews) även visar antalet kommentarer(tblKommentera) till respektive nyhet. Problemet är att den bara visar nyheter som har kommentarer.

Kan någon se vad jag gör för fel?

strSQL ="SELECT ID, Rubrik, Ingress, Innehall, Bild, Datum, Status, Dateact, COUNT(*) AS antal " & _
"FROM tblNews " & _
"INNER JOIN tblKommentera ON tblNews.ID = tblKommentera.CmtTo " & _
"WHERE Status=2 AND CURRENT_DATE >= Dateact " & _
"GROUP BY tblNews.ID " & _
"ORDER BY Datum DESC"
Medlem sedan juni 200032 967 inlägg
#2

Du gör två fel.

Det första är att du frågar om SQL i ASP-forumet, och det andra är att du använder INNER JOIN. Byt till LEFT JOIN istället.

Medlem sedan dec. 200012 464 inlägg
#3

Flyttas från ASP

Medlem sedan jan. 200554 inlägg
#4

Förlåt att jag råkada posta i fel forum och TACK för hjälpen :)

Medlem sedan jan. 200554 inlägg
#5

Dock blir sidan väldigt seg när jag kör en INNER JOIN. Vad kan detta bero på?

Medlem sedan juni 200032 967 inlägg
#6

Förlåt att jag råkada posta i fel forum

Alla får göra misstag. :)

Jag har också märkt att INNER JOIN suger mer än LEFT JOIN, men varför vet jag icke...
(Fast nu blev det väl en left join i alla fall?)

Medlem sedan jan. 200554 inlägg
#7

Jag har ca 1500 poster i tabellen med kommentarer och ca 200 poster i nyheter. Är detta tillräckligt för att en LEFT JOIN tar så oerhört mycket längre tid? När jag testar med INNER JOIN är det knappt någon prestandasäkning alls.

Medlem sedan juni 200032 967 inlägg
#8

Jag tyckte du skrev att INNER JOIN tar längre tid? Vad menar du alltså?

Medlem sedan jan. 200554 inlägg
#9

LEFT JOIN på min fråga tar väääldigt lång tid medan INNER JOIN inte ger någon märkbar skillnad i prestanda.

Exempel:

INNER JOIN: http://gnrdaily.com/

LEFT JOIN: http://http://www.gnrdaily.com/test.asp

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)