做项目用到多条件查询,但涉及到字段重复后,先生成SQL,然后再执行。
项目中需要查询用户关联公司表、部门表、职位表
然后多表查询的语句上一篇文章有写过http://loveteemo.com/article-122.html
这里需要加上的是:where条件的执行顺序是在field的前面,所以多个表一起查询字段冲突肯定是无法避免的。
这里需要用到TP的buildsql()
具体的是:
$User = M('user'); $sql = $User->alias('a') ->field('a.userid,a.username,a.rid,r.rid as roleid,r.rname,a.did,d.did as depid,d.depname,c.cid as companyid,a.cid') ->join('LEFT JOIN role r ON a.rid = r.rid') ->join('LEFT JOIN deparentment d ON a.did = d.did) ->join('LEFT JOIN company c ON a.cid = c.cid) ->buildSql(); $list = $User->table($sql .'a')->where($map)->select();//$map为上篇文章的条件
ThinkPHP手册地址:http://www.kancloud.cn/manual/thinkphp/1775
下一篇: HTML上传文件类型选择...