ThinkPHP多表联合查询的常用方法
ThinkPHP中关联查询(即多表联合查询)可以使用 table() 方法或和join方法,具体使用如下例所示: 【1、原生查询示例:】 复制代码 代码如下: $Model = new Model(); $sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.','.$p->listRows; $voList = $Model->query($sql); 【2、join()方法示例:】 复制代码 代码如下: $user = new Model('user'); $list = $user->join('RIGHT JOIN user_profile ON user_stats.id = user_profile.typeid' ); 【3、table()方法示例:】 复制代码 代码如下: $list = $user->table('user_status stats, user_profile profile')->where('stats.id = profile.typeid')->field('stats.id as id, stats.display as display, profile.title as title,profile.content as content')->order('stats.id desc' )->select();
手册中说的很少,网上查了一下,以前没用tp的时候,就是mysql中也没怎么用过join,现在好蒙哦,tp中的join怎么用的啊?我是想用它来实现多表查询,比如通过文章表中的uid联系到用户中的id,从而查出用户名,这个我想大家也是经常用吧?我在tp中是这样写的: $JOKES = M('Jokes'); $wish = $JOKES->join('inner join where jokes.uid = user.id')->order('time DESC')->limit($limit)->select(); 打印$wish也打印不出来,求解,这个到底该怎么写呢?或者哪里有资料啊?大牛指教
$wish = $JOKES->join('user on jokes.uid = user.id')->order('time DESC')->limit($limit)->select();
给心灵一个纯净空间,让思想,情感,飞扬!