我需要帮助在“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 )
我搜索了很多。但无法得到任何相关的解决方案。我尝试了许多可能的解决方案。但没有任何作用。请注意,我不喜欢使用原始查询。请帮忙。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
我找到的最好的文章就是这个页面上的文章: 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();