karis
10.01.2011, 23:49:35
chcę pobrać top 5 komentowanych newsów
mam tabele newsy a w niej pola id, nazwa, tresc
oraz tabele: newsy_komentarze o polach: id, id_newsa, tresc
chciałbym jakoś pobrać wg najwięcej dodanych dla danego newsa
prosze o sugestie jak to zrobic
Noidea
10.01.2011, 23:57:43
select z news_komentarze pobierający id_newsa i COUNT(*) as ilosc_komentarzy pogrupowany po id_newsa. Do niego inner joinem przyłącz id, nazwę i treść z tabeli news. Całość posortuj malejąco po ilosc_komentarzy i dodaj LIMIT 5
karis
11.01.2011, 11:30:10
mógłbyś mi napisać to zapytanie, bo mam kłopot z INNER JOIN
nospor
11.01.2011, 11:33:46
Pokaz kod co juz napisales i opisz dokladniej na czym klopot polega
karis
11.01.2011, 12:03:49
SELECT
".prefix."newsy_komentarze.id_newsa, COUNT(*) as ilosc_komentarzy
FROM
".prefix."newsy_komentarze
GROUP BY
id_newsa
INNER JOIN
".prefix."newsy
ON
".prefix."newsy_komentarze.id_newsa=".prefix."newsy.id
ORDER BY
ilosc_komentarzy DESC
LIMIT 5
");
dostaję taki komunikat:
Something is wrong in your syntax obok 'INNER JOIN strona_newsy ON strona_newsy_komentarze.id_newsa=strona_ar' w linii 7
nospor
11.01.2011, 13:30:55
Tak to jest jak sie nie patrzy na skladnie w manualu.
Najpier INNER potem GROUP BY
karis
11.01.2011, 13:43:14
Dzięki. A jeszcze gdybyś mi napisał jak dołączyć w INNER pola z tytułem newsa bo na razie dostaje w print_r same wartości int kluczy
nospor
11.01.2011, 13:46:08
bo w SELECT mowisz ze chcesz jedynie ID i ilosc. Dodaj do SELECT tytul to bedziesz mial i tytul.
Jak mowisz w sklepie poprosze mleko a w myslach dodajesz i chleb to sprzedawca da ci mleko i chleb czy samo mleko?
karis
11.01.2011, 13:50:38
nie no wiem tylko poprzedni user polecił mi tak zrobić
ale zauważ, że w tabeli newsy_komentarze nie ma pola nazwa bo ono jest w tabeli newsy
i nie wiem jak wyświetlić te nazwy artykułów
nospor
11.01.2011, 13:53:09
No ale przeciez tabele newsow joinujesz wiec ją masz w zapytaniu. Nie ma wiec zadnego problemu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.