zoukankan      html  css  js  c++  java
  • MySQL多表联查之ThinkPHP中的实现

    创建两个表如图:

    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如下:

     1 //多表联查(table)
     2     public function test18() {
     3         //实例化模型
     4         $model = M();
     5         //查询
     6         $result = $model->field('t1.*, t2.name as deptname')->table('sp_user as t1, sp_dept as t2')
                 ->where('t1.dept_id = t2.id')->select(); 7 dump($result); 8 } 9 //多表联查(join) 10 public function test19() { 11 //实例化模型 12 $model = M('User'); 13 //查询 14 $result = $model->field('t1.*, t2.name as deptname')->alias('t1')
                 ->join('left join sp_dept as t2 on t1.dept_id = t2.id')->select(); 15 dump($result); 16 }

    测试结果相同:

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

  • 相关阅读:
    HDU-1272-小希的迷宫(并查集)
    HDU-1084-What Is Your Grade?
    一个好的函数(gcd)求最小公约数
    HDU-1228-A + B
    HDU-1029-Ignatius and the Princess IV
    自控力》读后感·一
    HDU-2058-The sum problem(数学题技巧型)
    HDU-1430-素数回文
    sftp
    802. 区间和
  • 原文地址:https://www.cnblogs.com/splendid/p/9620209.html
Copyright © 2011-2022 走看看