【问题标题】:How to add this complex query into CDbCriteria (Yii 1.x)如何将此复杂查询添加到 CDbCriteria (Yii 1.x)
【发布时间】:2015-12-16 10:10:29
【问题描述】:

我正在尝试运行以下查询,但通过 Yii 自己的 CDbCriteria 运行它,以便它可以与使用 Yii CDbCriteria 功能的其他一些查询一起工作。

我不确定如何使用 CDbCriteria 执行以下 SQL 查询,谁能提供帮助?

SELECT *
FROM
students t1
WHERE school_id = 1 
AND
(
    SELECT
        sum(points)
    FROM
        students t2
    WHERE
        t2.id <= t1.id
) >= 1000
ORDER BY id
LIMIT 1

【问题讨论】:

    标签: mysql yii frameworks


    【解决方案1】:

    如果因其他原因不强制使用 CDbCriteria, 当 sql 很复杂时,您可以使用 findAllBySql(..)

    $models=Students::model()->findAllBySql(
           "SELECT * FROM students t1
             WHERE school_id = 1 
             AND ( SELECT  sum(points)
             FROM    students t2
             WHERE    t2.id <= t1.id ) >= 1000
             ORDER BY id
             LIMIT 1" 
    );
    

    【讨论】:

    • 非常正确,但没有直接回答问题。 OP 说“......所以它可以与使用 Yii CDbCriteria 功能的其他一些查询一起工作......”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2015-02-15
    • 2012-10-28
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多