Я теряю голову, пытаясь понять, что я делаю неправильно, позвольте мне объяснить abit о моей структуре MySQL (чтобы вы лучше поняли), прежде чем я перейду прямо к вопросу.
У меня есть простой форум PHP, и у меня есть столбец в обеих таблицах (для сообщений и тем) с именем «удален», если он равен 0, что означает, что он отображается (считается не удаленным / существует) или если он равен 1, то он скрыт (считается удаленным)/ не существует) - bool / lean.
Теперь о «определенных критериях», о которых я говорю ... Я хочу получить общее количество сообщений в определенном форуме, используя его идентификатор (forum_id), гарантируя, что он учитывает только те сообщения, которые не были удалены (удалено = 0), и их родительские темы также не удалены (удалено = 0).
Имена столбцов / таблиц не требуют пояснений (см. мои усилия ниже)для них - при необходимости).
Я пробовал следующее (используя «простой» 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
Я такжепробовал это (используя подзапрос):
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
Но оба dНе соответствует определенным критериям.
Цените всю помощь!:)