zoukankan      html  css  js  c++  java
  • [Laravel系列] 在Laravel ORM 使用STRAIGHT_JOIN

    还是因为上一个join优化的问题,项目使用laravel框架

    但是框架自身的join()方法并不能使用  STRAIGHT_JOIN 

    stackoverflow 同名问题,查到的方法

    mysql - Is there a way to create a STRAIGHT_JOIN using Laravel's ORM? - Stack Overflow

    在组合字段数组的时候,在第一个字段上增加  straight_join 字段

    试下这样的语句  select  straight_join 字段,  字段二, 字段三 等

    重点是这句

     $field[0] = DB::raw('straight_join '.$field[0]);

        /**
         * 格式化field
         * @param array $field
         * @return array
         */
        private function buildField(array $field): array
        {
            // 若查询id 则 获取的是主表的id
            if (in_array('id', $field)) {
                $field[array_search('id', $field)] = 'mumway_recruit_student.id';
            } else if($field == ['*']) {
                $field = [
                        'mumway_recruit_student.*',
                        'mumway_recruit_work_train.clue_id',
                        'mumway_recruit_work_train.clue_status',
                        'mumway_recruit_work_train.communicate_role',
                        'mumway_recruit_work_train.is_active_release_privacy',
                        'mumway_recruit_work_train.intention_worker_type',
                        'mumway_recruit_work_train.worker_type',
                        'mumway_recruit_work_train.train_status',
                        'mumway_recruit_work_train.follow_user_id',
                        'mumway_recruit_work_train.follow_user_name',
                        'mumway_recruit_work_train.professional_follow_user_id',
                        'mumway_recruit_work_train.professional_follow_user_name',
                        'mumway_recruit_work_train.city_code',
                        'mumway_recruit_work_train.city_name',
                        'mumway_recruit_work_train.group_id',
                        'mumway_recruit_work_train.auth_id',
                    ];
            }
            $field[0] = DB::raw('straight_join '.$field[0]);
            return $field;
        }

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com
  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    浅谈js模块加载方式(初级)
    浅谈.net的后台校验
    api接口访问限制
    系统操作日志表单形式构建
    RedisUtil(未完,持续更新中....)
    定时处理组件---Quartz.net
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15471835.html
Copyright © 2011-2022 走看看