Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Yajra Datatable Laravel Join Multiple Table Error

[ASK] [HELP] ada yang pake yajra datatable disini utk laravel 5.4 ? gimana cara menampilkan data dengan relasi contohnya tabel post, like dan comment tetapi yg ditampilkan cuma jumlah recordnya doang, misal post ini jumlah like berapa, jumlah commentnya berapa. ane udah coba pakai join tetapi masih error dmana si jumlah like dan comment jadi sama hasilnya, barangkali ada yg pernah ngalamin mohon bantuannya, terima kasih. ini query yg ane gunakan :

 $post = Post::with('user')->select([
'posts.id',
'posts.user_id',
'posts.content',
\DB::raw('count(comments.post_id) as numcomments'),
\DB::raw('count(likes.post_id) as numlikes'),
'posts.created_at'
])->join('comments','comments.post_id','=','posts.id')
->join('likes','likes.post_id','=','posts.id')
->groupBy(['posts.id','posts.user_id','comments.post_id','likes.post_id','posts.content','posts.created_at']);
return Datatables::of($post)->make(true);
avatar dras
@dras

24 Kontribusi 13 Poin

Dipost 7 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

solved menggunakan sub query..

 $post = \DB::table("posts")
          ->select("posts.*",
                    \DB::raw("(SELECT users.name FROM users
                                WHERE users.id = posts.user_id
                                GROUP BY users.id,users.name) as postuser"),
                    \DB::raw("(SELECT count(comments.post_id) FROM comments
                                WHERE comments.post_id = posts.id
                                GROUP BY comments.post_id) as numcomments"),
                    \DB::raw("(SELECT count(likes.post_id) FROM likes
                                WHERE likes.post_id = posts.id
                                GROUP BY likes.post_id) as numlikes"))->get();

avatar dras
@dras

24 Kontribusi 13 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban