[英]How to make COUNT AS in Zend_Db_Select?
所以我有這個查詢:
select u.*, count(mi.media_id) as media_count
from user as u
left join media_items as mi on mi.user_id = u.user_id
where u.is_enabled = 1 and
group by u.user_type
having media_count > 0;
我正在嘗試將其轉換為Zend_Db_Select。 到目前為止,除了媒體的數量,我擁有一切。 這是我嘗試的:
$select->from(array('u' => 'user'), array('*', new Zend_Db_Expr('COUNT(mi.media_id) AS media_count'))
->joinLeft('mi' => 'media_items'), 'mi.user_id = u.user_id')
->where('u.is_enabled = 1')
->group('u.user_type')
->having('media_count > 0');
這使我得到錯誤:
"Mysqli prepare error: Unknown column 'media_count' in 'having clause'"
如何以Zend方式創建此語句?
另外,我輸出了由此創建的查詢,並在MySQLWorkBench上運行了該查詢,它運行得很好。
編輯我剛剛嘗試過:
->columns('media_count' => new Zend_Db_Expr('COUNT(mi.media_id)'))
同樣的錯誤。
這應該正常工作:
$select->from(array('u' => 'user'), array('*', 'media_count' => 'count(mi.media_id)'))
->joinLeft('mi' => 'media_items'), 'mi.user_id = u.user_id')
->where('u.is_enabled = 1')
->group('u.user_type')
->having('media_count > 0');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.