Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

COALESCE trong laravel

Chà, OP không quá hữu ích, nhưng tôi sẽ thử! Tôi giả sử rằng votes bảng chứa phiếu bầu thực tế của người dùng trên các mục. Điều này có nghĩa là nếu một mặt hàng không nhận được bất kỳ phiếu bầu nào, thì id mặt hàng đó (masterItemId ) không tồn tại trong votes bảng.

Điều này có nghĩa là bảng phiếu bầu phải được kết hợp với bảng mục chính trên masterItemId đồng ruộng. Tôi sẽ gọi bảng các mục chính:items và giả sử rằng nó có một itemId trường khớp với masterItemId trong votes bàn. Theo thuật ngữ SQL:

select items.itemId, ifnull(sum(votes.votes),0) as votesSum
from items left join votes on items.itemId=votes.masterItemId
where votes.voteDate between ... and ... and <other conditions>
group by items.itemId

Tôi không quen thuộc với Laravel, nhưng bạn sẽ cần một cái gì đó như thế này, tuy nhiên, đừng coi đó là mã copy-paste:

$multipleitems = DB::table('items')
                 ->leftJoin('votes','items.itemId','=','votes.masterItemId')
                 ->select('items.itemId',DB::raw('ifnull(sum(votes.votes),0) as voteSum'))
                       ->whereBetween('votes.voteDate',array($startDate,$endDate))
                       ->where($condition)
                       ->groupBy('items.temId')
                       ->get();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự gia tăng nguyên tử với Khung thực thể

  2. So sánh Percona XtraBackup với MySQL Enterprise Backup:Phần một

  3. Xóa tất cả các hàng có dấu thời gian cũ hơn x ngày

  4. Lưu trữ GUID trong MySQL từ C #

  5. Làm cách nào để xác định kích thước giao dịch tối đa trong MySQL?