database - 所有分组的检索行都在第一个月
问题描述
我正在尝试使用按月 laravel 对从数据库中检索到的行进行分组,但所有行都在第一个月进行分组。
$data = Medicals::join("patient_referral", "medicals.trx_id", "=", "patient_referral.trx_id")
->where(function ($q) use ($startdate, $enddate) {
$q->whereBetween('medicals.created_at', [$startdate, $enddate])->get();
})
->leftJoin("patients", "medicals.patients_id", "=", "patients.id")
->join("tests", "medicals.tests_id", "=", "tests.id")
->get()
->groupBy(function (Medicals $item) {
return Carbon::parse($item->creted_at)->format('m');;
});
数据库(医学表)
请帮忙!!!
解决方案
您正在加入多个表。默认情况下,将包含这些表中的所有字段/列。我们真的不知道created_at
使用了哪个表中的哪个字段。
Medicals::join("patient_referral", "medicals.trx_id", "=", "patient_referral.trx_id")
->where(function ($q) use ($startdate, $enddate) {
$q->whereBetween('medicals.created_at', [$startdate, $enddate])->get();
})
// I select all fields from medicals table. You might want to update this later.
->selectRaw('medicals.*')
->leftJoin("patients", "medicals.patients_id", "=", "patients.id")
->join("tests", "medicals.tests_id", "=", "tests.id")
->get()
->groupBy(function (Medicals $item) {
return Carbon::parse($item->created_at)->format('m');;
});
推荐阅读
- javascript - 当我有用户ID时,如何设置用户的语音通道?
- python - 在 python 中自动从 SFTP 获取数据到本地服务器
- ios - 有关系时从不同的 API 保存到 coredata
- java - JPanel 未在 Java 中的 JFrame 中显示
- java - 循环中的缓冲区数组在做什么?
- java - 扫描仪要求我按两次 Enter 才能注册 var "choice"
- php - 如何添加到联系表“您的消息已收到”
- angular - 密码重置 - 将对象传递给 .NET Core API
- spring-boot - 用于管理多个流的 Spring 状态机
- c - C语言,if语句混淆