ThinkPHP的join方法

Posted Mr.风的影子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP的join方法相关的知识,希望对你有一定的参考价值。

两张表:

表一:pre_company_member   关联字段:comp_id

表二:pre_company   关联字段:comp_id

查询这两表中的数据。

方法一:驼峰法

$member=M(‘CompanyMember‘);

$member_info=$member->join(‘pre_company ON pre_company_member.comp_id=pre_company.comp_id‘)->where(array(‘pre_company_member.uid‘=>array(‘eq‘,session(‘uid‘))))->selsect();

方法二:别名法

$member=M();

$member_info=$member->table(‘pre_company_member m‘)->join(‘pre_company c ON m.comp_id=c.comp_id‘)->where(array(‘m.uid‘=>array(‘eq‘,session(‘uid‘))))->selsect();

 

注意:

默认采用INNER JOIN 方式,如果需要用其他的JOIN方式,可以改成

  1. $Model->join(RIGHT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id‘)->select();

或者使用:

  1. $Model->join(‘__WORK__ ON __artist__.id = __WORK__.artist_id‘,RIGHT)->select();

join方法的第二个参数支持的类型包括:INNER LEFT RIGHT FULL。

如果join方法的参数用数组的话,只能使用一次join方法,并且不能和字符串方式混合使用。例如:

  1. join(array(‘ __WORK__ ON __ARTIST__.id = __WORK__.artist_id‘,‘__CARD__ ON __ARTIST__.card_id = __CARD__.id‘))

使用数组方式的情况下,第二个参数无效。因此必须在字符串中显式定义join类型,例如:

  1. join(array(‘ LEFT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id‘,‘RIGHT JOIN __CARD__ ON __ARTIST__.card_id = __CARD__.id‘))

以上是关于ThinkPHP的join方法的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP join() table()方法的使用,多表查询

ThinkPHP join() table()方法的使用,多表查询

thinkphp 3.2 完全开发手册地址

ThinkPHP框架中关于查询分页显示的一个小方法

ThinkPHP数据多条件查询代码问题?

Thinkphp join 连接查询