AI编程生活评测

ThinkPHP3.2.3查询多次JOIN同一张表的处理

编程笔记 / 2018-05-09 / 1 min

问题:

在项目开发中遇到问题,要查询的一张主表 post 中有两个字段都关联了 user 表的 id ,需要取出 useruser_name 字段,那么应该怎么查询呢?

解决:

$posts_list = M()
    ->table('gc_post P')
    ->join('gc_user U ON P.author_id=U.id')
    ->join('gc_user U_M ON P.mentor_id=U_M.id')
    ->field('P.id, P.title, U.user_name as author_name, U_M.user_name as mentor_name,')
    ->order('P.gc_order desc')
    ->select();
这里是在 ThinkPHP3.2.3 下开发,给一张表取不同的别名,多次 JOIN 查询就可以正常取到数据了。