[mysql] order order order

0

To mi daje ilosc komentarzy posegregowana od najwiekszego do najmniejszego:

SELECT user_id, user_name, user_posts, comment_name, COUNT(*) AS commentscount
		FROM fusion_comments, fusion_users
		WHERE user_id = comment_name
		GROUP BY comment_name
		ORDER BY commentscount DESC

ja chce jednak po tym zapytaniu wykonac dzialanie:

$liczba = (20 * user_posts) + commentscount;

i posegregowac rowniez od najwiekszego do najmniejszego zmienna $liczba.
ORDER BY z sql'a bedzie juz nieaktualny bo niechce segregowac po komentach tylko po wykonanym dzialaniu.

Jak to zrobic?

0
SELECT user_id, user_name, user_posts, comment_name, COUNT(*) AS commentscount, (20*user_posts) + commentscount as liczba
                FROM fusion_comments, fusion_users
                WHERE user_id = comment_name
                GROUP BY comment_name
                ORDER BY commentscount DESC, liczba desc

O takie cos Ci chodzi? Nie wiem za bardzo czym jest user_posts.

0

Unknown column 'commentscount' in 'field list'Unknown column 'commentscount' in 'field list'

on to traktuje jako kolumne a nie jako poprzednia liczba zliczona ;:P

user_postsz to ilosc postow usera juz zliczona

0

sory za post pod postem ale niemozna edytowac

tak przy okazji, da sie to na php zrobic tez? bo to zapytanie jest hardcorowe :P

0

Hardcorowe to jest zapytanie na 50 linijek ;)

Wyjasnij co jest czym (kolumny i tabele) to zobaczymy czy inne zapytanie mozna dac.

0

rekordy: user_id, user_name, user_posts, comment_name
tabele: fusion_comments, fusion_users

0

Boze... Tyle to ja widze w zapytaniu ;P Pytam co oznacza co, w szczegolnosci czym logicznie jest user_posts, bo reszty to sie mozna domyslic. I jaki efekt chcesz uzyskac - sortujesz uzytkownikow wedlug ilosci komentarzy i to drugie to co?

0

SELECT user_id, user_name, user_posts, comment_name, COUNT(*) AS commentscount
FROM fusion_comments, fusion_users
WHERE user_id = comment_name
GROUP BY comment_name
ORDER BY commentscount DESC

  1. comment_name to id usera ktory komentowal (NIE MA nigdzie zliczonej wiec w zapytaniu zliczam ile razy jaki user ma w tabeli swoje id czyli ile razy skomentowal news)
  2. user_posts to np. 10 .... liczba postow ktore napisal (gotowe, zliczone juz w bazie)
    a reszta to wiadomo user_name to nick usera :P ... id usera tez wiadomo
0

No to tak moze pojdzie:

SELECT user_id, user_name, user_posts, comment_name, COUNT(*) AS commentscount, (20*user_posts) + COUNT(*) AS liczba
                FROM fusion_comments, fusion_users
                WHERE user_id = comment_name
                GROUP BY comment_name
                ORDER BY commentscount DESC, liczba DESC

PS. Do laczenia tabel uzylbym joina.

0

Ok teraz jest dobrze tylko musialem wyciachac

z tego: ORDER BY commentscount DESC, liczba DESC
to: commentscount DESC

Bo potrzebuje posortowac po tym dzialaniu a nie samych komentarzy tez :) i poszlo jak zlotko.

Dzieki wielkie za helpa, a z tym JOIN'em, to jest zasobozerne, ale jakbys tego uzyl w tym przypadku?

1 użytkowników online, w tym zalogowanych: 0, gości: 1