php - 如何在 YII 中使用 3 个带有连接的表来获取总计数?

标签 php mysql yii

我有3个mysql表(order、camp、user)如下值,

order_table
ID    camp_id       orderDate       
1       1           2015-01-01
2       1           2015-02-01
3       2           2015-03-01
4       3           2015-01-01
5       4           2015-04-01
6       2           2015-01-01
7       4           2015-07-01

camp_table
camp_id uid     camp name
1       10             first camp
2       11             second camp
3       12             third camp
4       10             forth camp

user_table
uid    uname
10      abc
11      xyz
12      wrt

就像上面的例子一样,我想使用YII1中的user_table(uid 10)的order_table记录计数

$criteria = new CDbCriteria();

方法。

或任何其他方法,但工作速度快,因为 order_table 中有数百万条记录

我已经尝试了所有我能找到的选项,但没有一个对我有用。

感谢您的帮助。

最佳答案

试试这个,这可能对你有帮助。
Yii 标准:

$criteria = new CDbCriteria;
// $criteria->select    = '*';
$criteria->join      = 'INNER JOIN company ON order.company_id = company.id';
$criteria->join     .= 'INNER JOIN user ON company.user_id = user.id';
$criteria->condition = 'user.id=:id';
$criteria->params    = array(':id'=>10);

$customers = Order::model()->count($criteria);

Mysql查询:

SELECT count(*)
FROM `order`
INNER JOIN `company` ON `order`.`company_id` = `company`.`id`
INNER JOIN `user` ON `company`.`user_id` = `user`.`id`

WHERE `user`.`id` = 10;

关于php - 如何在 YII 中使用 3 个带有连接的表来获取总计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073157/

相关文章:

php - 在 PHP 中将 HTML 转换为纯文本以用于电子邮件

php - 在 PHP/MYSQL 服务器上运行 ASP & VB.NET & Access 网站

php - MySQL查询计数多个表

yii - Yii 框架中的 RBAC 实现

php - Yii 框架的 I18n 基础

php使用javascript处理多个复选框选择

mysql - 使用子查询mysql在同一个表中更改auto_increment

mysql 查询以 root 身份运行

php - 使用 Dreamweaver 上传图像文件时出错

php - Yii 2 中的事件数据提供者标准