首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel雄辩中使用DISTINCT ON

如何在Laravel雄辩中使用DISTINCT ON
EN

Stack Overflow用户
提问于 2021-07-22 16:56:06
回答 1查看 337关注 0票数 0

下面是我的完整SQL语句:

代码语言:javascript
复制
SELECT DISTINCT ON (hbg.group_id)
    hbg.group_id,
    hbg.id AS id,
    hbg.group_name,
    hbg.group_description,
    hbg.group_type_id,
    hbgt.group_type_name,
    hbg.category_id,
    hbg.effective_start_datetime,
    hbg.created_by,
    hbg.created_datetime,
    hbg.archived_by,
    hbg.archived_datetime
FROM hms_bbr_group hbg
LEFT JOIN hms_bbr_group_type hbgt
    ON hbg.group_type_id = hbgt.group_type_id
ORDER BY
    hbg.group_id,
    hbg.id DESC;  

我正试图将这一声明转化为拉拉维尔雄辩的代码:

代码语言:javascript
复制
public function fetchgroup(){
    $all_groups = HmsBbrGroup::leftJoin('hms_bbr_group_type', 'hms_bbr_group.group_type_id', '=', 'hms_bbr_group_type.group_type_id')
                               ->distinct('group_id')
                               ->orderBy('group_id', 'ASC', 'id', 'DESC')->get();
    return response()->json([
        'all_groups'=>$all_groups,
    ]);
}

我已经读到过,雄辩的口才不知何故不支持不同的ON,所以我不能只是简单地做distinctOn('group_id')

  • If --在这种情况下,是否有办法修改函数中的选择以使用DISTINCT ON?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-22 19:18:19

在select语句中使用DB::raw,或者在末尾添加一个selectRaw。以下是一些选择:

代码语言:javascript
复制
->select(
    DB::raw('distinct on (hbg.group_id)'),
    'hbg.group_id',
    ...)

代码语言:javascript
复制
->select(...)
->selectRaw('distinct on (hbg.group_id)')

代码语言:javascript
复制
->selectRaw('DISTINCT ON (hbg.group_id)
    hbg.group_id,
    hbg.id AS id,
    hbg.group_name,
    hbg.group_description,
    hbg.group_type_id,
    hbgt.group_type_name,
    hbg.category_id,
    hbg.effective_start_datetime,
    hbg.created_by,
    hbg.created_datetime,
    hbg.archived_by,
    hbg.archived_datetime
')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68488820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档