główkuję nad tym problemem już dość długo i raczej sobie sam nie poradzę, dlatego też prosiłbym tutejszych bywalców o pomoc. Skonstruowałem sobie pewne zapytanie, które wygląda następująco:
SELECT u.userid, u.useracc, (SELECT COUNT(*) FROM photos g WHERE g.photos_user=u.userid) AS pt (SELECT COUNT(*) FROM comments c WHERE c.comment_author=u.userid) AS com, (SELECT COUNT(*) FROM posts p WHERE p.post_author=u.userid) AS post FROM users u WHERE u.useracc='4' GROUP BY u.userid ORDER BY pt DESC, com DESC, post DESC
Chciałbym jednak, by ilość rekordów, które zostały wcześniej wyciągnięte z tabel (photos, comments, posts) zostały zsumowane, a następnie zostały wyświetlane od największego. Zobrazuje to konkretniej przykładem, który niestety do końca nie działa:
SELECT u.userid, u.useracc, (pt+com+post) AS total, (SELECT COUNT(*) FROM photos g WHERE g.photo_user=u.userid) AS pt, (SELECT COUNT(*) FROM comments c WHERE c.comment_author=u.userid) AS com, (SELECT COUNT(*) FROM posts p WHERE p.post_author=u.userid) AS post FROM users u WHERE u.useracc='4' GROUP BY u.userid ORDER BY total DESC
Kombinowałem już z SUM(), LEFT JOIN, UNION, ale najwidoczniej coś robiłem nie tak, bo co rusz pojawiał się nowy problem.
Z góry dzięki za jakąkolwiek chęć pomocy.