Eyoucms程序开发:视图查询
视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图,例如:
Db::view('User','id,name')
->view('Profile','truename,phone,email','Profile.user_id=User.id')
->view('Score','score','Score.user_id=Profile.id')
->where('score','>',80)
->select();
生成的SQL语句类似于:
SELECT User.id,User.name,Profile.truename,Profile.phone,Profile.email,Score.score FROM think_user User INNER JOIN think_profile Profile ON Profile.user_id=User.id INNER JOIN think_socre Score ON Score.user_id=Profile.id WHERE Score.score > 80
注意,视图查询无需调用
table
和join
方法,并且在调用where
和order
方法的时候只需要使用字段名而不需要加表名。
默认使用INNER join查询,如果需要更改,可以使用:
Db::view('User','id,name')
->view('Profile','truename,phone,email','Profile.user_id=User.id','LEFT')
->view('Score','score','Score.user_id=Profile.id','RIGHT')
->where('score','>',80)
->select();
生成的SQL语句类似于:
SELECT User.id,User.name,Profile.truename,Profile.phone,Profile.email,Score.score FROM think_user User LEFT JOIN think_profile Profile ON Profile.user_id=User.id RIGHT JOIN think_socre Score ON Score.user_id=Profile.id WHERE Score.score > 80
可以使用别名:
Db::view('User',['id'=>'uid','name'=>'account'])
->view('Profile','truename,phone,email','Profile.user_id=User.id')
->view('Score','score','Score.user_id=Profile.id')
->where('score','>',80)
->select();
生成的SQL语句变成:
SELECT User.id AS uid,User.name AS account,Profile.truename,Profile.phone,Profile.email,Score.score FROM think_user User INNER JOIN think_profile Profile ON Profile.user_id=User.id INNER JOIN think_socre Score ON Score.user_id=Profile.id WHERE Score.score > 80
可以使用数组的方式定义表名以及别名,例如:
Db::view(['think_user'=>'member'],['id'=>'uid','name'=>'account'])
->view('Profile','truename,phone,email','Profile.user_id=member.id')
->view('Score','score','Score.user_id=Profile.id')
->where('score','>',80)
->select();
生成的SQL语句变成:
SELECT member.id AS uid,member.name AS account,Profile.truename,Profile.phone,Profile.email,Score.score FROM think
相关文档
- 迅睿cms首页及各页面实现ajax瀑布流滚动加载
- 使用FancyBox弹出窗口插件实现图片/视频点击弹出层浏览
- 使用VenoBox弹出窗口灯箱插件实现图片相册功能
- 使用JavaScript代码实现页面下滑时顶部导航栏固定跟随页面...
- 迅睿cms使用全局表单制作证书查询功能
- 百度编辑器 UEditor 用 highlight.js 库实现...
- 用jQuery替换文章编辑器里的图片样式及alt标签 实现自定义...
- 迅睿cms站群系统实现全国城市分站功能插件及调用标签
- 迅睿cms使用API接口实现主站统一管理多站点群友情链接
- WordPress实现整站静态化 WP2Static使用教程
- 让WordPress实现页面预加载 Instant.page使用...
- EyouCms对接百度熊掌号实现快速收录
- 瀑布流实现下拉加载更多
- 迅睿CMS:在模板中读取本模板有哪些可以使用的变量
- 迅睿CMS:网站表单/全局表单:基于网站表单/全局表单设计查询内...
- 迅睿CMS:Table类:重写列表查询的数据格式
- 迅睿CMS:Table类:增加列表查询条件
- 迅睿CMS:Table类:查询条件继承
- Eyoucms程序开发:cache
- Eyoucms程序开发:join
上一篇: Eyoucms程序开发:高级查询
下一篇: Eyoucms程序开发:子查询