السلام عليكم
لدي جدولين احدهما للمقالاات والاخر لاقسام المقالاات
articles ,articles_cat
المقالاات يحتوي على:
id
title
visits
active
cat_id
و الاقسام يحتوي على
catname
cat_id
اريد اظهار مجموع المقالات لكل قسم و مجموع المقالاات المفعلة والمقالاات الغير مفعلة في استعلام واحد
قمت باظهار عدد المقالات عن طريق left join
الاستعلام كالتالي:
كود PHP:
$sql = "select articles.id as `article_id`,articles.title as `article_title`,articles_cat.active as `active`,COUNT(articles.id) as `articles_num`,count(IF(articles.active=0,article.active,0)) as `active_num`,IF(article.active=1,COUNT(article.active),0) as `nonactive_num`,sum(articles.visits) as `visit_num`
from `articles_cat` join`articles` as `articles`using (cat_id) group by`catid` asc "
المشكلة الآن في الجزء:
كود PHP:
count(IF(articles.active=0,article.active,0)) as `active_num`
وايضا في الجزء:
كود PHP:
IF(article.active=0,COUNT(article.active),0) as `nonactive_num`
حاولت عمل شرط بحيث يحسب عدد الفعال وينسبه الى active_num لكن المشكلة اريد ان اضع الشرط قبل كتابة from حتى يحسب الفعال والغير فعال كل على حدة
للتوضيح اريد عمله هكذا مع العلم انه خاطئ لكن للتوضيح فقط:
كود PHP:
count(articles.active where articles.active=1) as `active_num`,count(articles.active where articles.active=0) as `notactive_num`
حاولت ايضاً عمل استعلامات متداخلة وفشلت ولا ترجع اي نتيجة
عملت استعلام كالتالي:
كود PHP:
left join (SELECT count(active),active,id from articles having active=1 group by id) as `num_active` on(articles.cat_id=articles_cat.cat_id)
فهل من حل لجمع المفعل والغير مفعل كل على حدة في استعلام واحد فقط؟