راکت

دسته بندهایی با بیشترین سفارش

5 پاسخ
$data = Category::select('categories.id' , 'categories.title' , DB::raw( 'COUNT(*) AS count' ) )
                     ->join( 'products' , 'categories.id' , '=' , 'products.category_id' )
                     ->join( 'orders' , 'orders.product_id' , '=' , 'products.id' , 'left outer' )
                     ->groupBy( 'categories.id' )
                     ->get();

سلام دوستان؛ میخوام براساس دسته بندی ببینیم کدوم دسته بندی بیشترین فروش رو داشته، این کوئری رو زدم، درسته؟

اطلاعات رو برمیگردونه، ولی تعداد رو با هم جمع میزنم با تعداد کل سفارشات برابر نیست

coarad supp
coarad supp
@coaradsupp
ثبت پرسش جدید

پاسخ‌ها

5
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@coaradsupp
سلام.
خروجی این الان به چه صورت هستش؟
شما در نهایت چه خروجی می خواهید؟

coarad supp
coarad supp
@coaradsupp

تخصص: برنامه نویس لاراول

@mohsenbostan
سلام،
یه ارایه به این شکل

[
...
{title:x,categories:2},
{title:y,categories:10},
...
]

میخوام مثلا محصولات دسته x فلان قدر سفارش داشته، اسم اون دسته و تعداد سفارش هاشو میخوام در بیارم

شاید پاسخ شما همین‌جا باشد

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@coaradsupp
مقدار اختلاف برای هر دسته رو حساب کنید ببینید از هر دسته مقدار معینی فرق داره یا رندومه.

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@coaradsupp
از کد زیر استفاده کنید:

App\Category::whereHas('products', function (Builder $query) {
    $query->withCount('orders');
})->get();
coarad supp
coarad supp
@coaradsupp

تخصص: برنامه نویس لاراول

@mohsenbostan
ممنون
این تعداد سفارشات رو برنمیگردونه اقای بستان، کوئری که خودم زدم تعداد رو یه حدودا 100 تا کمتر از تعداد کل سفارشات میزنه، دلیلشم نفهمیدم هنو

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام