Verschachtelung wählt zu machen Popularität Algorithmus
-
11-10-2019 - |
Frage
Ich versuche, eine SQL-Funktion für die Herstellung einer Popularität Algorithmus zu schreiben.
Ich möchte „Beiträge“ durch die Menge an Kommentaren in „Kommentaren“ mit dem „post_id“ der Post sortieren, zu der Menge der Stimmen in der „Stimmen“ Tabelle mit dem „post_id“ der Post , die alle von „Datum“ in der „Beiträge“ Tabelle sortiert (ein Zeitstempel).
Ich bin mir nicht sicher, wie tun, diesen Multi-Table gehen sortieren, so dass ich für einige Hinweise bin Annäherung!
Vielen Dank im Voraus, Will.
Lösung
Ich habe nicht getestet, aber es kann funktionieren:
SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`
Und zusätzlich können Sie es mit dem Pfosten Join-Tabelle:
SELECT * FROM `posts` LEFT JOIN (SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`) AS `p` ON(`post_id`)
Andere Tipps
habe ich beschlossen, auf den „Abstimmung“ count nur basierend zu gehen.
SELECT posts.id, posts.date, COUNT(votes.id) AS votePerPost FROM posts,votes WHERE posts.id = votes.post_id GROUP BY posts.id ORDER BY posts.date DESC, votePerPost ASC
, weil es ein eng genug Beispiel ist. Von dem, was ich suchte.