dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9268|回复: 183

[php框架] ThinkPHP3.2实现MySQL多表查询

  [复制链接]
  • TA的每日心情
    奋斗
    2024-4-23 21:44
  • 签到天数: 237 天

    [LV.7]常住居民III

    4425

    主题

    1434

    帖子

    9930

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    9930
    发表于 2018-11-20 18:40:32 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    创建两个表如图:
    sp_user表: 1442837-20180910151017122-1463183343.png

    sp_dept表: 1442837-20180910151109578-1733778804.png

    目的:通过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;

    结果相同: 1442837-20180910152622191-1197175997.png

    对应ThinkPHP中,则也有两种方法table和join如下:
    [PHP] 纯文本查看 复制代码
    //多表联查(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);
        }

    测试结果相同:
    1442837-20180910154007419-1786479177.png
    1442837-20180910154107667-1327364271.png


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




    回复

    使用道具 举报

    该用户从未签到

    33

    主题

    7990

    帖子

    1018

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1018

    发表于 2018-11-21 00:37:08 | 显示全部楼层
    看帖回帖是美德!:lol

    该用户从未签到

    37

    主题

    7917

    帖子

    1069

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1069

    发表于 2018-11-21 00:38:18 | 显示全部楼层
    有道理。。。

    该用户从未签到

    26

    主题

    7950

    帖子

    902

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    902

    发表于 2018-11-21 01:47:26 | 显示全部楼层
    有竞争才有进步嘛

    该用户从未签到

    42

    主题

    7760

    帖子

    928

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    928

    发表于 2018-11-21 05:54:40 | 显示全部楼层
    正需要,支持楼主大人了!

    该用户从未签到

    51

    主题

    7829

    帖子

    989

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    989

    发表于 2018-11-21 07:41:47 | 显示全部楼层
    有竞争才有进步嘛

    该用户从未签到

    32

    主题

    7817

    帖子

    974

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    974

    发表于 2018-11-21 13:43:01 | 显示全部楼层
    看帖回帖是美德!:lol

    该用户从未签到

    24

    主题

    7712

    帖子

    941

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    941

    发表于 2018-11-21 14:27:13 | 显示全部楼层
    正需要,支持楼主大人了!

    该用户从未签到

    26

    主题

    8093

    帖子

    1091

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1091

    发表于 2018-11-21 17:21:16 | 显示全部楼层
    好好 学习了 确实不错

    该用户从未签到

    40

    主题

    7892

    帖子

    1017

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1017

    发表于 2018-11-22 08:44:09 | 显示全部楼层
    珍惜生命,果断回帖。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-5-16 12:16 , Processed in 0.107025 second(s), 45 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表