Postingan lainnya
Mencara data terbanyak pada table di laravel
Selamat malam agan agan sekolah koding.. disini saya kebingungan nih tentang koding laravel untuk mencari jumlah data terbanyak di table,
misalkan saya ada tabel portofolio dan tabel user , nah saya mau ambil data user yang mempunyai portofolio terbanyak pada tabel portofolio. terimakasih sebelumnya gan :D
5 Jawaban:
coba di share table nya ndan... biasanya si tinggal di count terus di group by id_user tapi itu tergantung bentuk table nya
gini gan misal : table user { id, nama, }
table portofolio{ id, user_id (FK dari user) }
nah jadi pingin buat kyk sistem ranking user yang mempunyai portofolio terbanyak gan , kalau di query biasa pakai TOP 1 kalau tidak salah , nah di laravel saya bingung gan di dokumentasinya juga tidak nemu :")
bisa gunakan right join gan yang dari tabel user ke table portofolio left -> right
terus pake group by dan order by
tapi untuk elequent ORM nya saya tidak tau.. pake query builder aja
Jawaban Terpilih
query builder
SELECT user.nama, user.id, COUNT(DISTINCT portofolio.id) AS total FROM user LEFT JOIN portofolio ON portofolio.user_id = user.id GROUP BY user.id ORDER BY total DESC
eloquent ORM User.php = table user
User::select(['user.nama','user.id',DB::raw('COUNT(DISTINCT portofolio.id) AS total')->leftJoin('portofolio','portofolio.user_id','=','user.id')->groupBy('user.id')->orderBy('total','desc');
g tau bener atau salah, tpi di coba aja dulu.
sudah terpecahkan gan , termiakasih banyak yang sudah membantu :)