首页  >  文章  >  后端开发  >  thinkPHP3.2 中join用法实例

thinkPHP3.2 中join用法实例

小云云
小云云原创
2018-03-09 15:50:234254浏览

inner join  如果表中至少 有一个匹配,在则返回行,等同与 join 。

left    join  即使 有右表中没有匹配 ,也从左表中返回所有的行。

right join  即使左表中没有匹配,也从右表中返回所有的行。

full    join  只要其中一个表中匹配,就返回行。

 $lists = $this->orderModel
     ->alias('t')
     ->field('t.*,o.order_id as ccsid')
      ->join('left join __ORDER__ as o on t.order_id = o.third_order_id  and t.source = o.source')
      ->where($map)
      ->order("create_time DESC")
      ->limit($page->firstRow . ',' . $page->listRows)
      ->select();

Tp语法注释:

$lists = $this->orderModel              // M('third_order');
    ->alias('t')                        // 别名
    ->field('t.*,o.order_id as ccsid')  // 要查的字段
    ->join('left join __ORDER__ as o on t.order_id = o.third_order_id  and t.source = o.source')
    //关联表(左链接  order表 as o 别名  on关系 t.xx = o.xxx          and  t.xxx  =  o.xxx  )
    ->where($map)                       // 条件
    ->order("create_time DESC")         // 排序
    ->limit($page->firstRow . ',' . $page->listRows)  // 取几条
    ->select();

解析的sql 语句为:

            
     SELECT    t.*,o.order_id as ccsid 
     FROM    db_third_order t 
     left join   db_order as o 
     on  t.order_id = o.third_order_id and t.source = o.source 
     WHERE   t.status <> 0 
     ORDER BY  create_time DESC 
     LIMIT     0,20


原生sql注释 :

select 表名(别名).* , 表名(别名). 字段 as 别名
from 主表 空格 别名(t)
left join 从表 as 别名 (o)
on   t.xxx = o.xxx   and   t.xxx = o.xxx   <表关系>
where  条件  
order by  字段名 desc   倒叙
limit  0,20

相关推荐:

实例详解javaScript中split与join的区别

JavaScript把数组中的所有元素放入一个字符串的方法join()

php join函数的使用代码实例

以上是thinkPHP3.2 中join用法实例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn