Bir belirli kriterler dahilinde MySQL COUNT () toplam ileti?

0 Cevap php

Ben düz soruya gitmeden önce ben ne yapıyorum yanlış anlamaya çalışıyorum saçlarımı kaybediyorum, (böylece daha iyi bir anlayış olsun) benim MySQL yapısı hakkında abit anlatalım.

Ben basit bir PHP forum var ve onun görüntülenir (var / silinmez kabul) veya gizli 1 bunu eşitse (silindi kabul / anlamına 0 eşitse ben 'silindi' adında (mesajlar ve konular için) iki tablodaki bir sütun var ) yok - bool / yalın.

Şimdi, hakkında ben 'belirli kriterleri' ... Ben, onun id (forum_id) kullanarak belirli bir forumun içinde toplam mesajlarınızın sayısını almak isteyen sadece (silindi = 0) silinmez mesajları sayar sağlanması ediyorum ve bunların ana konular silinir değil ya (silindi = 0).

Sütun / tablo adları (- gerekirse onlar için aşağıda benim çabalarını görmek) kendini açıklayıcıdır.

I've tried the following (using a 'simple' 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

I've also tried this (using a 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

Ama her ikisi de belirli kriterlere uymayan.

Tüm yardım için teşekkür ederiz! :)

0 Cevap