- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3 张 table :
它们之间的关系:
银行模式:
public function relations() {
return array(
'bankBankDetails' => array(self::HAS_MANY, 'BankBankDetails', 'bank_id'),
);
}
银行详细信息模型:
public function relations() {
return array(
'bankBankDetails' => array(self::HAS_MANY, 'BankBankDetails', 'bank_details_id'),
);
}
bank_bank_details 模型:
public function relations()
{
return array(
'bank' => array(self::BELONGS_TO, 'Bank', 'bank_id'),
'bankDetails' => array(self::BELONGS_TO, 'BankDetails', 'bank_details_id'),
);
}
我想在bank_details模型的管理 View 中获取银行详细信息,例如bank_name、ifsc等信息。
我生成的正常 SQL 查询运行得很好:
SELECT b.name
FROM bank b
LEFT JOIN bank_bank_details bbd ON bbd.bank_id = b.bank_id
LEFT JOIN bank_details bd ON bd.bank_details_id = bbd.bank_details_id
WHERE bd.bank_details_id = bbd.bank_details_id
LIMIT 0 , 30
现在我只想将其与 Yii CDBCriteria 集成,但它对我不起作用。请检查以下代码:
public function search() {
$criteria = new CDbCriteria;
// select b.name
// from bank b
// left join bank_bank_details bbd
// on bbd.bank_id = b.bank_id
// left join bank_details bd on bd.bank_details_id = bbd.bank_details_id
// WHERE bd.bank_details_id = bbd . bank_details_id;
$criteria->compare('bank_details_id', $this->bank_details_id);
$criteria->compare('first_holder_name', $this->first_holder_name, true);
$criteria->compare('nominee1', $this->nominee1, true);
$criteria->select = 'b.name';
$criteria->join = 'LEFT JOIN bank_bank_details bbd ON bbd.bank_id = b.bank_id ';
$criteria->join .= 'LEFT JOIN bank_details bd ON bd.bank_details_id = bbd.bank_details_id';
$criteria->condition = 'bd.bank_details_id = bbd.bank_details_id';
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => 10,
),
));
}
错误: 发现错误 500 CDbCommand 未能执行 SQL 语句: SQLSTATE[42S22]: 未找到列:1054 'on 子句' 中的未知列 'b.bank_id'
如有任何帮助,我们将不胜感激。
最佳答案
您需要为表设置别名,如下所示:$criteria->alias='b';
或使用默认别名“t”而不是“b”
阅读更多内容 http://www.yiiframework.com/doc/api/1.1/CDbCriteria#alias-detail
关于php - Yii CDBCriteria 复杂连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923306/
我正在使用 CDbCriteria 来过滤 CListView(产品页面) $criteria = new CDbCriteria(); $criteria->join ='LEFT
我有以下查询: select `t`.`id` AS `id`, `rm`.`role_id` AS `role_id`, `t`.`id` AS `sequence`,
我在从数据库中检索数据时遇到问题,我已将表 user 三次加入到表 family_tree 中。 CdbCommand 会返回从第一个表(family_tree)中选择的值,但不会返回从第二个和第三个
我正在使用 yii 和 CDbCriteria 通过连接从 3 个表中获取结果。这是我到目前为止所做的: $criteria->select = 't.product_id, t.title, t1.
我正在尝试在 Yii 框架中使用 CDBCriteria 进行 Join 查询。问题是连接查询成功运行,但它不显示其他表中的列。 我正在按照以下方式进行 $criteria = new CDbCrit
我正在开发 Yii 驱动的应用程序。我想转换这个 SQL: SELECT m.sendDate, m.status, c.name, c.email, mt.name, mt.subject, CON
我正在尝试从多个表中获取数据,但以这个错误结束: SQL:SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“p.firstname” $criteria = new C
我必须做一些过滤器,比如获取给定部门的人员,我想知道最好的方法。 其中一些将需要连接多个表。 有人知道 CDbCriteria 和查询生成器之间的主要区别吗?我特别想知道与数据库的兼容性。 我在有关查
有没有办法从 CDbCriteria 获取查询的字符串表示形式? ?用于测试和调试目的。 最佳答案 您可以像这样使用日志记录和分析配置您的 main.php: 'components'=>array(
我最近开始了一个使用 Yii 的项目,我正在努力适应查询生成器。现在,我想使用连接进行查询并在查询中访问连接表的数据,但我无法使以下内容正常工作: 我的(简化的)数据库表: 客户(#id,姓名) 员工
当我尝试使用 CDbCriteria 对记录进行计数时,我得到 Active record "Hotels"is trying to select an invalid column "count(t
我想按日期过滤记录,所以我添加了 createDate BETWEEN ' . $dateRange['start'] . ' AND ' . $dateRange['end'] 按照我的标准,但我得
我一直在努力将以下 SQL 转换为 CDBCriteria 以与 CActiveDataProvider 一起使用:“选择 PresetDeviceLink。、设备。 FROM PresetDevic
如何在 YIi 中将自定义查询转换为 CDbCriteria。我已经尝试过这样的操作,可能不完整: $criteria=new CDbCriteria; $criteria->select='t.
在 YII 应用程序的登录页面上,我设置了以下条件来验证用户: $criteria->condition = 'uname ILIKE :username OR email_id ILIKE :use
我需要通过 CDbCriteria 运行以下语句在 Yii 中: SELECT `tbl_products`.`id` FROM `tbl_products` INNER JOIN `tbl_prod
我有一个帖子表和一个用户表。帖子使用帖子表中的authorId 列链接到用户。我想使用 CGridView 的 CDbCriteria 选择至少拥有一篇或多篇帖子的用户。下面是我正在尝试实现的 sql
我有 3 张 table : 银行 银行详细信息 bank_bank_details 它们之间的关系: 银行模式: public function relations() { retu
我试图弄清楚如何使用 Yii 的 CDbCriteria 构建一个查询,该查询相当于以下内容: SELECT * FROM user u JOIN (
我对 YII 还很陌生,但仍在努力理解它。但是据我所知,当你做类似的事情时 yourModel->findAll(criteria) 类似于“Select * from”吗?还是更像是“从中选
我是一名优秀的程序员,十分优秀!