【问题标题】:How to select sub-query with left join inside using eloquent?如何使用 eloquent 在内部选择带有左连接的子查询?
【发布时间】:2019-11-18 12:43:55
【问题描述】:

我是 Laravel 的新手,如何使用 Eloquent 模型在 Laravel 中进行此查询:

SELECT
(
  SELECT departments.deptname FROM school.counts
  LEFT JOIN reference.departments
  ON counts.departmentcode = department.departmentcode
  WHERE counts.countid = a.countsid
) AS departmentDesc
FROM school.subjecthdr a
LEFT JOIN school.subjectdtls b
ON a.subjectid = b.subjectid;

我不想使用原始查询,有什么办法吗?如果有任何原始查询建议,我仍然很感激。

【问题讨论】:

    标签: php mysql laravel eloquent query-builder


    【解决方案1】:

    我认为您仍然需要一些原始查询。

    $dept_desc = \DB::table('school.counts')
    ->leftjoin('reference.departments', 'counts.departmentcode', '=', 'departments.departmentcode')
    ->whereRaw('counts.countid = a.countsid')
    ->selectRaw('departments.deptname');
    
    
    \DB::table('school.subjecthdr AS a')
    ->leftjoin('subjectdtls AS b', 'a.subjectid', '=', 'b.subjectid')
    ->selectRaw('(' . $dept_desc->toSql() . ') AS departmentDesc')
    ->get();
    

    PS:我想你leftjoin subjectdtls b,但你似乎不需要它。

    而且你使用的不仅仅是一个数据库,如果你想使用Eloquent\Builder, 你需要做这样的事情: How to use multiple databases in Laravel

    【讨论】:

    • 谢谢伙计,这只是一个块查询。我将在实际情况下对此进行改进。真是帮了大忙!
    猜你喜欢
    • 2019-05-24
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多