Ich habe meine Haare verlieren versucht herauszufinden, was ich falsch mache, lassen Sie mich etwas über meine MySQL-Struktur erklären (damit Sie ein besseres Verständnis bekommen), bevor ich direkt auf die Frage gehe.MySQL COUNT() Beiträge insgesamt innerhalb eines bestimmten Kriterien?
Ich habe ein einfaches PHP-Forum und ich habe eine Spalte in beiden Tabellen (für Beiträge und Themen) mit dem Namen 'gelöscht', wenn es gleich 0 bedeutet, dass angezeigt (nicht gelöscht/existiert) oder wenn es gleich 1 ist es versteckt (gilt als gelöscht/existiert nicht) - bool/mager.
Jetzt sind die 'spezifischen Kriterien', über die ich bin ... Ich möchte eine Gesamtanzahl von Posts innerhalb eines bestimmten Forums mit seiner ID (forum_id) erhalten, so dass es nur Beiträge zählt, die nicht gelöscht werden (deleted = 0) und ihre übergeordneten Themen werden ebenfalls nicht gelöscht (deleted = 0).
Die Spalten-/Tabellennamen sind selbsterklärend (siehe unten, falls nötig).
Ich habe das versucht, folgende (unter Verwendung eines 'einfachen' JOIN):
SELECT COUNT(t1.post_id)
FROM forum_posts AS t1, forum_topics AS t2
WHERE t1.forum_id = '{$forum_id}'
AND t1.deleted = 0
AND t1.topic_id = t2.topic_id
AND t2.deleted = 0
LIMIT 1
Ich habe auch schon versucht, diese (mit einem Subquery):
SELECT COUNT(t1.post_id)
FROM forum_posts AS t1
WHERE t1.forum_id = '{$forum_id}'
AND t1.deleted = 0
AND (SELECT deleted
FROM forum_topics
WHERE topic_id = t1.topic_id) = 0
LIMIT 1
Aber beide entsprechen nicht den spezifischen Kriterien.
Schätzen Sie alle Hilfe! :)