以下是我的查询:
select nonrem_id as RefID , (SELECT group_concat(concat(nonremu_updated_date, ' - ',name,' - ',ttu.nonremu_updates) SEPARATOR ',') FROM `fanda_bank_nonremit_update` as ttu left join fanda_mst_users on login_id = nonremu_createdby WHERE ttu.nonremu_cid = fanda_bank_acc_nonremitted.nonrem_id order by ttu.nonremu_id asc ) as Comments from `fanda_bank_acc_nonremitted` left join `fanda_mst_users` on `login_id` = `nonrem_created_by` where `nonrem_gl_date` >= 2017-02-01 and `nonrem_gl_date` <= 2017-05-11 and `nonrem_country` = BE
如何在Laravel Eloquent ORM中编写此查询。我尝试过使用“查询”构建器,但我想知道如何在纯ORM中编写此查询。
P.S:我不应该在任何地方使用DB :: raw()。
请帮助。
答案 0 :(得分:0)
你不能,你需要DB::raw()
来构建一个像这样的选择语句。
编辑:
如果您不关心在选择中使用DB::raw()
,请在您的选择中尝试以下内容:
Model::select('nonrem_id as RefID',DB::raw('(SELECT group_concat(concat(nonremu_updated_date, ' - ',name,' - ',ttu.nonremu_updates) SEPARATOR ',') FROM `fanda_bank_nonremit_update` as ttu left join fanda_mst_users on login_id = nonremu_createdby WHERE ttu.nonremu_cid = fanda_bank_acc_nonremitted.nonrem_id order by ttu.nonremu_id asc ) as Comments'))
如果您使用的是严格模式,它将抛出QueryException
因为您按非选定字段排序第一个查询,以避免此查询异常配置您的数据库连接以允许此类顺序。您可以在文件config/database.php
上执行此操作,方法是将这两个参数添加到您的&#39;连接中的实际连接中。阵列:
'strict' => true,
'modes' => ['STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_AUTO_CREATE_USER',
'NO_ENGINE_SUBSTITUTION'],