Yii框架多表查询(一对一与多对一)
2019独角兽企业重金招聘Python工程师标准>>>
在网上查过了很多yii框架多表查询的问题,但总没有适合自己的,自己建了几张表过来分析,把操作写出来分享Yii框架多表查询(一对一与多对一)给大家
查一对一或多对一(常使用到的就是文章和文章分类关系)
在yii数据库模型中比如有一个Post.php文件
代码如下:
class Post extends CActiveRecord{
/*
* 返回当前模型对象的静态方法
* 重写父类CActiveRecord对应的方法
*/
public static function model($className = __CLASS__) {
return parent::model($className);
}
/*
* 返回当前数据表的名字
* 重写父类CActiveRecord对应的方法
*/
public function tableName() {
return '{{post}}';
}
//关联查询
public function relations()
{
return array(
//Post与User的关系是BELONGS_TO(多对一)关系,这里的author_id是User中的author_id
//'select'=>'id,username'查出来的字段
'author'=>array(self::BELONGS_TO, 'User', 'author_id','select'=>'id,username'),
);
}
}
需要弄清楚的几点:
(1),VarName是指一个对像;
(2),RelationType。一共有4种,分别为self::HAS_MANY, self::BELONGS_TO, self::MANY_MANY, self::HAS_ONE。
(3),ClassName。即关联的另一个../model/类名.php。
(4),ForeignKey。谁是谁的外键?
(5),附加条件
要是在操作器中使用,那么我们得这么写:
public function actionIndex(){
$post=post::model();
$criteria = new CDbCriteria();
//加一个条件就是author_id=2的
//$criteria->condition ="author_id=2";
//这个是按什么条件排序
//$criteria->order = 't.author_id ASC';
$criteria->with = array ( 'author' );
$result =$post->findAll( $criteria );
print_r($result);
}
以上的例子使用原生态的sql语句是这样么写的:
SELECT * FROM wn_post as p left join wn_user as u ON u.id=p.author_id
转载于:https://my.oschina.net/shunshun/blog/220623
Yii框架多表查询(一对一与多对一)相关推荐
- yii mysql join_Yii框架连表查询操作示例
本文实例讲述了Yii框架连表查询操作.分享给大家供大家参考,具体如下: Join //表连接 //查询出学生.班级.校区.记录表的所有数据 $data=Jf_record::find() ->j ...
- 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多
7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...
- php yii框架addselect,PHP Yii框架之数据库查询操作总结
Yii容易学习和使用.你只需要知道PHP和面向对象编程,便可以很快上手,而不必事先去学习一种新的架构或者模板语言.用Yii的开发速度非常之快,除框架本身之外,需要为应用所写的编码极少.事实上这是最高效 ...
- php验证规则表单,PHP Yii框架之表单验证规则大全
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用.Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程. 废话不多说了,直接给大家贴代码了. class ContactForm ...
- PHP Yii框架之表单验证规则大全
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用.Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程,本文给大家介绍php yii框架之表单验证规则大全,感兴趣的朋友一起学习吧 ...
- mybatis-plus多表查询(三表多对多关系)
数据库表的关系无非就四种:1.一对多(多对一),2.一对一,3.多对多,4.没有关系.其实面对数据表的多对多关系并没有那么复杂,那要看你怎么实现,传统的方法无非就是查询sql语句,而我要的是不通过自己 ...
- [MySql]实现多表查询-一对一,一对多
目录 多表关联关系的分类 mybatis中的多表查询: 数据库准备 项目目录 一对一查询(多对一) 方式一:(xml文件映射) 查询结果: 方式二:(注解映射) 一对多查询(一对多) 方式一:(xml ...
- sequelize如何建立关联关系表模型来实现联表查询?【多对多篇】
如何用sequelize提供的方法,实现多对多联表查询? 我们以 RBAC(Role-Based Access Control,基于角色的访问控制)来举例说明. 简单地说,一个用户拥有若干角色,每一个 ...
- Mybatis实现多表查询(一对一、一对多、多对多)
文章目录 一.一对一查询 1.1 模型 1.2 SQL语句 1.3 创建Order和User实体类 1.4 创建OrderMapper接口 1.5 配置OrderMapper.xml 1.6 测试 二 ...
- mybatis 多表查询 一对一 一对多查询
本文举例: 1.订单信息表 2.订单详情表 3.发票表 三表关系: 订单信息表 订单信息详情表 1:n 订单信息表 发票表 1:1 需求: 查询订单表订单详情表和发票表所有信息: <!-- 订单 ...
最新文章
- 用Python来分析5天破10亿的哪吒,为啥这么火?
- FPGA的设计艺术(4)STA实战之不同时序路径的建立保持时间计算
- 定期清空Linux系统日志文件
- 枚举遍历法,你能循环遍历所有的枚举值吗?
- javaScript事件(一)事件流
- EJB3 学习笔记六
- 调色板栅格数据使用GDAL时注意
- Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
- 清华女生破解北斗?中国最年轻女博导揭秘背后实情
- 修改Sql Server 2000数据库名称
- 让你彻底理解线性代数中的概念——《线性代数的本质》系列视频笔记
- 阿里 P9 用 500 多页手册完成双十一高并发秒杀系统,绝了
- MySQL的安装与配置——详细教程 这是原地址https://www.cnblogs.com/winton-nfs/p/11524007.html
- 如何防止表单重复提交问题
- 牛客 最小互质数(筛法求解)
- 台湾代工三十年,“教父”难再寻
- jxls导出excel
- 20个免费的网络电话收集分享
- 为什么要做掌纹识别?
- 记一次.net core调用微信云开发Http Api的uploadFile,上传文件到云环境的坑爹的排错过程
热门文章
- c语言 头文件卫士详解,C 语言条件编译与防止头文件重复
- java编码规范概述_Java 编码规范 (转)
- vivaldi浏览器_两款可以提升效率的网络浏览器
- nbi可视化_教您通过NBI大数据可视化工具零编码轻松实现桑基图的制作
- python3 unicodedecodeerror_Python3 UnicodeDecodeError
- 谷歌:光靠软件修复不能完全防御“幽灵”漏洞
- void android.os.Bundle.putBoolean(java.lang.String
- SlidingMenu使用笔记
- CSS 3的display:盒类型详解
- 【转载】如何在Ubuntu上安装LAMP服务器系统?