67自学网

thinkphp连贯查询


进行web开发经常需要连表查询,而且很多时候就连一次即可。

如果使用thinkphp的关联查询(relation)就需要新增model,开发是比较高端,但是个人感觉有些麻烦。

所以现在的我基本是用thinkphp的连贯查询,就是使用sql语句的特性join数据

例如:我要查store表,并且要根据store表的user_id,在user表的资料,where查询store的id。

旧方法:查了store,然后使用store表的user_id查user表,可能用到循环,遍历,从新实例一个对象。

现在:我们就可以使用join如下↓

$where['s.id'] = 1;
$where['s.status'] = array('in','0,1');
$list = M("Store")
	->alias('s')    //把Store命名为s
	->join('tp_user u on s.user_id=u.id') //就是使用tp_user join到store表
	->field(array('s.name'=>'storename','u.name'=>'applyname','u.status')) //要获取的数据,若要全部如果出现字段冲突,会使用join的
	->where($where)
->select();

就这样就可以实现把用户信息直接插入store表,减少代码的重用。


侧栏导航