کوئری یا الکوئنت برای رابطه چند به چند

4 روز پیش توسط حسین آپدیت شد
آفلاین
user-avatar
parhamft ( 4260 تجربه )
2 هفته پیش
تخصص : برنامه نویس لاراول

لینک کوتاه اشتراک گذاری

0

سلام دوستان خسته نباشید
در نظر بگیرید یک تیبل یوزر داریم یک تیبل تگ و یک تیبل نوشته
هر یوزر میتونه چند نوشته داشته باشه که هر نوشته یک تگ داره
حالا میخوام با یک کوئری به ازای هر تگ یوزری که بیشترین نوشته با اون تگ رو داشته در بیارم
ممنون میشم با کوئری راو یا الکوئنت همچین کوئری رو بنویسید

آفلاین
user-avatar
حسین ( 60171 تجربه )
2 هفته پیش

لینک کوتاه اشتراک گذاری

0

نمیدونم درست متوجه شدم یا نه
شما یه tag دارین که میخواین ببینین کدوم user از همه بیشتر از اون استفاده کرده ؟
اگه درست گفتم کدش اینه

// db structure 
        // users id,email 
        // comments id,user_id,tag_id,text
        // tags id,text

$tag = Tag::find(1) ;

$user = User::query()
            // get user comments with tags
            ->with(["comments","comments.tags"])
            // where comment has tag id 1 
            ->whereHas("comments" ,function( Builder $builder_comments ) use($tag) {
                $builder_comments->where("tag_id",$tag['id'])->withCount("tags") ;
            })
            // sort by tags_count desc 
            ->orderByDesc("tags_count")
            // `first` or `get` 
            ->first() ;
آفلاین
user-avatar
parhamft ( 4260 تجربه )
2 هفته پیش
تخصص : برنامه نویس لاراول

لینک کوتاه اشتراک گذاری

0

@h.j432 ممنون از پاسختون
فقط من یکی از تگ هارو نمیخوام همه تگ هارو میخوام یعنی لیستی از تگ ها که کاربری که بیشترین استفاده رو داشته از اون تگ رو نمایش بده

آفلاین
user-avatar
حسین ( 60171 تجربه )
4 روز پیش

لینک کوتاه اشتراک گذاری

0
->first()
// بیشترین 
->get()
// همه 

@parham.ftehrani

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.