thinkphp join详解连表查询数据

//inner join  如果表中至少 有一个匹配,在则返回行,等同与 join 。
//left    join  即使 有右表中没有匹配 ,也从左表中返回所有的行。
//right join  即使左表中没有匹配,也从右表中返回所有的行。
//full    join  只要其中一个表中匹配,就返回行。

//        ①这里讲的是两个表查询数据
//            查询哪一个表 $this->table 是哪一个表的意思
        $db = Db::name($this->table)
//            给表取别名
            ->alias('a')
//            查询别名里面所有的信息  并且查询需要连接的表里面的字段
            ->field('a.*,rf_status,rf_time')
//            需要查询的表的表名 后面的b 是给需要查询的表取别名  逗号后面的是需要查询两个表里面相同的数据
            ->leftJoin('red_frozen b', 'ra_uid = rf_uid');

//        ②这里讲解是三个表查询数据
//            查询哪一个表 $this->table 是哪一个表的意思
        $db = Db::name($this->table)
//            这里是给当前需要查询的表取别名
            ->alias('a')
//            下面是需要查询别名表里面所有的东西  逗号后面是连表里面需要查询的东西
            ->field('a.*,rf_status,rf_time,u_phone,u_pid')
//            这里是连表里面的第二个表  这个表里面跟主表里面相对应的字段
            ->join('red_frozen', 'ra_uid = rf_uid')
//            这里是第三个表里面的数据 第三个表里面的数据跟之前表里面相对应的一样的数据
            ->join('red_user', 'u_id = ra_uid');

发布了34 篇原创文章 · 获赞 16 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_42786143/article/details/102724493