• 技术文章 >Java >java教程

    ThinkPHP中如何实现MySQL多表联查

    不言不言2020-09-04 15:28:38原创3838

    ThinkPHP中实现MySQL多表联查的方法:首先实例化模型;然后使用table()方法或join()方法进行查询即可,例如:【table('sp_user as t1, sp_dept as t2')】。

    本篇文章给大家带来的内容是关于ThinkPHP中的如何实现MySQL多表联查(图文) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    相关视频教程推荐:《mysql教程》、《PHP教程

    创建两个表如图:

    sp_user表:

    sp_dept表:

    目的:通过sp_user的dept_id查询所属部门即sp_dept中的name。

    原生sq方法一:

    select t1.*,t2.name as deptname from sp_user as t1,sp_dept as t2 where t1.dept_id = t2.id;

    原生sq方法二:

    select t1.*,t2.name as deptname from sp_user as t1 left join sp_dept as t2 on t1.dept_id = t2.id;

    结果相同:

    对应ThinkPHP中,则也有两种方法table和join如下:

        //多表联查(table)
        public function test18() {
            //实例化模型
            $model = M();
            //查询
            $result =$model->field('t1.*, t2.name as deptname')->table('sp_user as t1, sp_dept as t2')
                 ->where('t1.dept_id = t2.id')->select();
            dump($result);
        }
        //多表联查(join)
        public function test19() {
            //实例化模型
            $model = M('User');
            //查询
            $result = $model->field('t1.*, t2.name as deptname')->alias('t1')
                 ->join('left join sp_dept as t2 on t1.dept_id = t2.id')->select();
            dump($result);
        }

    测试结果相同:

    综上:ThinkPHP进行多表联查可通过table方法和join方法分别实现,测试环境ThinkPHP3.2.3,表前缀sp_

    相关推荐:

    2个表如何关联查询(thinkphp)

    ThinkPHP中关联查询实例,ThinkPHP关联实例

    以上就是ThinkPHP中如何实现MySQL多表联查的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:ThinkPHP
    上一篇:SpringBoot如何实现整合Jsp和Thymeleaf? 下一篇:带你们了解Java8 HashMap源码解析的步骤
    VIP会员

    相关文章推荐

    • thinkphp实现无限分类(使用递归)_javascript技巧• thinkphp中常用的系统常量和系统变量_javascript技巧• ThinkPHP中where()使用方法详解_php实例• ThinkPHP框架安全实现分析_php实例• 基于ThinkPHP实现批量删除_php技巧

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网