Tôi có ba bảng: uploads
, categories
và một bảng many-to-many
được gọi là category_upload
.Chọn mười danh mục hàng đầu dựa trên một cột trong một bảng khác với hùng hồn
Các bảng trông như thế này:
**categories**
id
name
**uploads**
id
name
downloads(integer)
**category_upload**
id
category_id
upload_id
Mỗi lần tôi tải về một "Tải lên" giá trị trong cột tải được tăng 1.
Những gì tôi muốn làm, nhưng không thể tìm hiểu cách bắt đầu là chọn 10 danh mục hàng đầu dựa trên cột downloads
trong bảng uploads
. Do đó, nếu tổng số cột là downloads
là lớn nhất đối với tất cả các video tải lên từ một danh mục nhất định, danh mục này phải là số một và tiếp tục là số mười.
Điều này có thể đạt được bằng tài hùng biện hay chỉ là SQL và cách thực hiện? Bất kỳ lời khuyên được đánh giá cao!
Dưới đây là cách tôi đã thiết lập các mối quan hệ của tôi trong các mô hình:
Thể loại:
public function uploads(){
return $this->belongsToMany('App\Upload');
}
Tải lên:
public function category(){
return $this->belongsToMany('App\Category');
}
dữ liệu mẫu và kết quả mong muốn thực sự sẽ giúp đỡ. Ví dụ: "sách" là gì? –
@GordonLinoff cuốn sách là một tải lên, tôi đã sửa nó. –