Hej Detta borde funka Jag skrev nog lite otydligt, det är tänkt på som själva "nyhetssidan" där alla nyheter listas så jag måste nog inner_joina tabel_kommentarer till tabel_nyheter också jämför man med Nyhets_ID med Kommentar_NyhetsID, men jag vet inte riktigt hur man gör det :) Du kan inte köra en inner join, då får du inte med nyheter utan kommentarer... Mitt förslag: Insåg när jag läste Andreas svar att mitt svar inte var komplett, borde vara såhär: Jag är intresserad av prestanda skillnaden för det olika frågorna. Jag tror ev. Johans fråga är snabbare. Men personligen gillar jag inte att man måste göra en GROUP BY på alla fält man vill ha med. Om man använder SQL server och gör det till en vy med index vinner man man nog en hel del.Räkna antalet kommentarer till en nyhet
Jag håller på med ett nyhetsscript. Jag har gjort så att man kan kommentarerna nyheten, nu vill jag göra så att man kan se hur många kommentarer varje nyhet har. Jag har gjort så att kommentarerna är i en egen tabell i databasen och varje kommentar har en kolumn där där ett id står (samma id som nyheten har så att rätt kommentar kommer till rätt nyhet).
Hur gör man för att i sql frågan kolla hur många kommentarer varje nyhet har? Sv: Räkna antalet kommentarer till en nyhet
SELECT COUNT(*) FROM Tabel_Kommentarer WHERE Nyhets_ID = 1 (id på nyhet du vill veta kommentarer för)Sv:Räkna antalet kommentarer till en nyhet
Sv: Räkna antalet kommentarer till en nyhet
SELECT ..., COUNT(tabel_kommentarer.Kommentar_NyhetsID) AS Kommentarer FROM tabel_nyheter LEFT JOIN tabel_kommentarer ON tabel_nyheter.Nyhets_ID = tabel_kommentarer.Kommentar_NyhetsID
/JohanSv:Räkna antalet kommentarer till en nyhet
SELECT ..., Sub.CommentCount
FROM news LEFT JOIN
(SELECT comments.CommentNewsID, COUNT(*) AS CommentCount
FROM comments
GROUP BY comments.CommentNewsID) AS Sub ON news.NewsID = Sub.CommentNewsID
ORDER BY news.NewsDate DESC
Underfrågan sparar du lämpligast som en vy:
SELECT ..., viewCommentsSummery.CommentCount
FROM news LEFT JOIN viewCommentsSummery ON news.NewsID = viewCommentsSummery.CommentNewsID
ORDER BY news.NewsDate DESCSv:Räkna antalet kommentarer till en nyhet
SELECT Fält1, Fält2, COUNT(tabel_kommentarer.Kommentar_NyhetsID) AS Kommentarer FROM tabel_nyheter LEFT JOIN tabel_kommentarer ON tabel_nyheter.Nyhets_ID = tabel_kommentarer.Kommentar_NyhetsID GROUP BY Fält1, Fält2
/JohanSv: Räkna antalet kommentarer till en nyhet