chenbiao_o 2019-04-19 11:38 采纳率: 50%
浏览 476
已采纳

thinkphp5框架的查询可以解释一下这种查询的原理吗?

$videoLib = new VL();

$lists = $videoLib->alias('v')->field('v.*,c.videoCategoryName')->join('VideoLibCategory c','v.categoryId=c.id','LEFT')->where($map)->order('v.id desc')->limit($start,$limits)->select();

各位大神,有个问题请教一下,我接手了一个项目,但是项目里的查询用法是首先new一个模型类, 再用这个变量直接带条件去查询,表名都没有这些数据是怎么查出来的?图片说明

  • 写回答

3条回答 默认 最新

  • qq_22607961 2019-04-19 17:42
    关注
    $videoLib = new VL(); //没有看到这个的定义,应该是实例化这个VideoLib这个表的model
    
    $lists = $videoLib->alias('v')->field('v.*,c.videoCategoryName')->join('VideoLibCategory c','v.categoryId=c.id','LEFT')->where($map)->order('v.id desc')->limit($start,$limits)->select();
    //
    ->alias('v')这个是指vl设置VideoLib这个表的别名为 'v'  就是数据库连接查询中的定义别名
    ->field() 这部分主要是需要获取哪些字段,这个里面就是VideoLib表里面的全部字段和VideoLibCategory 这个表里面的videoCategoryName字段
    ->join('VideoLibCategory c','v.categoryId=c.id','LEFT')这部分就是左连接VideoLibCategory这张表,关联的字段是VideoLib表的categoryId字段和VideoLibCategory 的id字段,关联的方式使用左连接的方式
    ->where($map) 这个就是筛选的条件
    ->order('v.id desc')这个是排序,是按照VideoLib的id降序排序
    ->limit($start,$limits) 这个是查询的记录数,第一个是起始位置,第二个是查询的记录数
    ->select(); 这个就是查询出符合条件的记录了
    
    这句大致相当于的sql是: select v.*,c.videoCategoryName from VideoLib as v left join VideoLibCategory as c on v.categoryId=c.id where $map 部分  order by v.id desc  limit $start,$limit
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码