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 数学建模——参会安排怎么做
  • ¥15 电脑键盘实现触摸功能
  • ¥25 matlab无法将表达式转换为双数组怎么解决?
  • ¥15 单片机汇编语言相关程序
  • ¥20 家用射频美容仪技术规格
  • ¥15 大家帮我看看为什么错了
  • ¥15 unity互动琴弦抖动效果
  • ¥15 做了个的二极管反向饱和电流测量电路,但是测试达不到效果
  • ¥15 nginx无证书访问https失败
  • ¥15 树莓派启动AP热点传入数据