【问题标题】:Using MySQL functions in Propel ORM在 Propel ORM 中使用 MySQL 函数
【发布时间】:2014-03-06 12:27:03
【问题描述】:

我需要帮助在“symfony 1.1.9”框架中的 Propel ORM 中编写以下原始 MYSQL 查询,该框架包含 SELECT 和 WHERE 中的 MySQL 函数。

SELECT DATE( u.date ) date, TIME( u.date ) time, u.id account_id, u.user_name ,
        IF( ( SELECT COUNT( id )
        FROM bank
        WHERE user_id = u.id
        AND DATE( creation_date ) > DATE_ADD( CURDATE( ) , INTERVAL -30
        DAY )
        GROUP BY user_id ) , 'Y', 'N'
        ) AS deposited
        FROM user u
        WHERE DATE( u.dat ) > DATE_ADD( CURDATE( ) , INTERVAL -30
        DAY )

我为此搜索了很多。但无法得到任何相关的解决方案。我尝试了许多可能的解决方案。但没有任何效果。请注意,我不喜欢使用原始查询。请帮忙。任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: php mysql symfony1 propel


    【解决方案1】:

    我找到的最好的文章是这个页面上的文章: http://propelorm.org/reference/model-criteria.html#using-a-query-as-input-for-a-second-query-table-su参考子查询部分。

    为了让您入门,您可以尝试以下方法(我尚未对此进行测试,因此肯定会有一些错误):

    $deposited = BankQuery::create()
    ->filterByCreationDate($back30days, Criteria::GREATER)
    ->groupBy('Bank.UserId');
    
    $users = UserQuery::create()
    ->addSelectQuery($deposited, 'deposited')
    ->where('deposited.UserId = User.Id')
    ->filterByDate($back30days, Criteria::GREATER)
    ->find();
    

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      相关资源
      最近更新 更多