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
  • 相关阅读:
    Linq to Json
    CoreData 增删改查
    ios中的coredata的使用
    更安全的HTTPS
    Block编程注意的问题
    iOS 网络编程 TCP/UDP HTTP
    imageNamed 、imageWithContentsOfFile、 initWithContentsFile区别
    调试解决iOS内存泄漏
    iOS中的#import和class区别
    何时使用copy,strong,weak,assign关键字 定义属性
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15471835.html
Copyright © 2011-2022 走看看