使用Laravel Eloquent上的join统计不同表中的行数

时间:2018-11-25 05:32:04

标签: php mysql laravel eloquent

如何用雄辩的方式对与主表连接的另一个表的行进行计数?

我有三个表:

  • 客户
  • 短信通知
  • 电子邮件通知

我想通过首先拉动客户列表来加入他们的行列,然后计算他们从SMS和电子邮件中收到通知的次数。最后返回计数,如果没有发送通知,则返回0。

enter image description here

我找到了一个样本: Laravel Eloquent to join table and count related

我将其用于电子邮件:

<?php

$clients = Client::where('cl_delete_status', false)
    ->leftJoin('insura_communication_emails', 'insura_clients.cl_id', 'insura_communication_emails.cl_id')
    ->leftJoin('insura_communication_sms', 'insura_clients.cl_id', 'insura_communication_sms.cl_id')
    ->select('*', DB::raw('count(ice_id) as total'))
    ->groupBy('insura_clients.cl_client_id')
    ->orderBy('insura_clients.cl_id', 'desc')->get();

如何在上面的代码中同时放置电子邮件和SMS insura_communication_sms这两个表?它会跳过电子邮件通知中计数为0的那些邮件。

0 个答案:

没有答案