在laravel中的单变量查询中联接多变量查询
这是我的sql查询。我试图在单个变量中连接三个不同的变量,这将在单个查询中连接在laravel中的单变量查询中联接多变量查询,laravel,laravel-5,Laravel,Laravel 5,这是我的sql查询。我试图在单个变量中连接三个不同的变量,这将在单个查询中连接 $rData['ReportSent'] = self::select(DB::raw('count(resident_emails.id) as ReportSent'), "residents.id as resident_id", "resident_emails.id") ->join("resident_emails","resident_emails.res
$rData['ReportSent'] = self::select(DB::raw('count(resident_emails.id) as ReportSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Wellness Profile')
->groupBy('resident_emails.resident_id')
->get()->toArray();
$rData['ReportWithPhotoSent'] = self::select(DB::raw('count(resident_emails.id) as ReportWithPhotoSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Wellness Profile and Photos')
->groupBy('resident_emails.resident_id')
->get()->toArray();
$rData['MessageSent'] = self::select(DB::raw('count(resident_emails.id) as MessageSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Message')
->groupBy('resident_emails.resident_id')
->get()->toArray();
i am tryring this
$rData['SentMailCount'] = self::select(DB::raw('count(resident_emails.id) as ReportWithPhotoSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Wellness Profile and Photos')
->orWhere('resident_emails.mail_type', 'Wellness Profile')
->orWhere('resident_emails.mail_type', 'Message')
->groupBy('resident_emails.resident_id')
->get()->toArray();
但我想要健康档案计数,健康档案和照片计数,信息计数在三个不同的列上
我想在单变量的单次查询中使用它。
我试图将三个不同的变量合并到一个变量中。它将加入一个查询 我建议将邮件类型存储为一个数组,并利用
中的。如果多个列以逗号分隔,也可以按多个列分组
$rData['ReportSent'] = self::select(DB::raw('count(resident_emails.id) as ReportSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Wellness Profile')
->groupBy('resident_emails.resident_id')
->get()->toArray();
$rData['ReportWithPhotoSent'] = self::select(DB::raw('count(resident_emails.id) as ReportWithPhotoSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Wellness Profile and Photos')
->groupBy('resident_emails.resident_id')
->get()->toArray();
$rData['MessageSent'] = self::select(DB::raw('count(resident_emails.id) as MessageSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Message')
->groupBy('resident_emails.resident_id')
->get()->toArray();
i am tryring this
$rData['SentMailCount'] = self::select(DB::raw('count(resident_emails.id) as ReportWithPhotoSent'), "residents.id as resident_id", "resident_emails.id")
->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->where('resident_emails.mail_type', 'Wellness Profile and Photos')
->orWhere('resident_emails.mail_type', 'Wellness Profile')
->orWhere('resident_emails.mail_type', 'Message')
->groupBy('resident_emails.resident_id')
->get()->toArray();
$mailTypes = ['Message', 'Wellness Profile and Photos', 'Wellness Profile'];
$allTypes = self::select(
DB::raw('count(resident_emails.id) as MessageSent'),
"residents.id as resident_id",
"resident_emails.id"
)->join("resident_emails","resident_emails.resident_id","=","residents.id")
->whereBetween('resident_emails.created_at', array($start, $end))
->where('residents.community_id', $communityId)
->where('residents.care_level', 'LIKE', '%'.$carelevel.'%')
->whereIn('resident_emails.mail_type', $mailTypes)
->groupBy('resident_emails.mail_type', 'resident_emails.resident_id')
->get()
->toArray();
这将在一个查询中获得以上所有内容-不确定您希望输出数据结构是什么,因此您可能需要稍微调整一下。到目前为止,您在单个查询中尝试了什么?检查我的更新问题很棒!真的,一位女士:)哦,对不起。泰玛希,你能帮我吗