PDA

View Full Version : نحوه شمارش تعداد پست‌ها در هر دسته



aliireza
سه شنبه 12 فروردین 1393, 23:53 عصر
سلام.
دنبال اینم که بهترین راه محاسبه تعداد پست‌ها در هر دسته چیه؟
اینکه با یک join و count محاسبه بشه یا اینکه یک جدول درست کنم و با ایجاد هر پست یک مقدار اضافه کنم؟
البته اینم بگم که جدول دسته‌های من یکم پیچیده‌ست. به این صورت:
جدول categories
که ۱- آی دی دسته ۲- عنوان دسته ۳- دسته مادر
و جدول categoryposts
که ۱- آی دی پست ۲- آی دی دسته وارد میشه.
توضیح اینکه، در جدول categories، من دسته‌هایی دارم که به اصطلاح دسته مادر محسوب می‌شند و بقیه دسته‌ها زیرمجموعه این دسته‌های مادر هستند.
مثلا یک دسته اصلی علوم دارم، و زیر مجموعه‌های این دسته ممکنه دسته های علوم کامپیوتر، فلان، فلان،... باشه.
حالا من میخوام تعداد پست‌ها در دسته‌های اصلی و زیرمجموعه‌ها رو حساب کنم و دنبال بهترین راه حل میگردم
نمیدونم تونستم منظورمو خوب برسونم یا نه!
ممنون :)

MMSHFE
چهارشنبه 13 فروردین 1393, 00:18 صبح
این کوئری رو تست کنید:
SELECT `categoryid`,COUNT(*) AS `postcount` FROM `categoryposts` GROUP BY `categoryid`
این کوئری برای یک دسته جواب میده ولی برای یک دسته و زیر مجموعه هاش، باید ابتدا یک دسته و تمام زیرمجموعه هاش رو پیدا کنید (با یک تابع بازگشتی) و بصورت یک آرایه در بیارین و بعد با implode با کاما بهم بچسبونید و نهایتاً با دستوری شبیه زیر، تعداد پستهاش رو شمارش کنید:
SELECT COUNT(*) AS `postcount` FROM `categoryposts` WHERE (`categoryid` IN (1,5,7,25))