2012-01-23 59 views
0

我有一個查詢,使用活動記錄,當我執行時顯示一個問題。問題與計數別名(contagem)有關。當我在where子句中使用別名時,我總是得到一個錯誤。CodeIgniter別名列

的錯誤是:在未知列'康塔「where子句」

我怎樣才能解決這個問題?

$this->db->distinct(); 
$this->db->select($this->produto_categoria_campos . ', count(pc.codigo_produto_categoria) AS contagem'); 
$this->db->from($this->produto_categoria_tabela . ' pc'); 
$this->db->group_by('pc.codigo_produto_categoria'); 
$this->db->where('contagem >', 0); 
$this->db->order_by("pc.ordem", "ASC"); 

return $this->db->get()->result(); 
+1

你可以發佈'$ this-> db-> last_query()'的結果嗎?這會給你正在執行的確切查詢。 –

回答

2

嘗試將$ this-> db-> select設置爲false作爲防止轉義字段的第二個參數。

$this->db->distinct(); 
$this->db->select($this->produto_categoria_campos . ', count(pc.codigo_produto_categoria) AS contagem', FALSE); 
$this->db->from($this->produto_categoria_tabela . ' pc'); 
$this->db->group_by('pc.codigo_produto_categoria'); 
$this->db->where('contagem >', 0); 
$this->db->order_by("pc.ordem", "ASC"); 

return $this->db->get()->result(); 
+0

感謝您的提示,但我得到同樣的錯誤。 – Marcos

+0

用HAVING子句求解:\t \t $ this-> db-> distinct(); \t \t $ this-> db-> select($ this-> produto_categoria_campos。',count(pc.codigo_produto_categoria)AS contagem',FALSE); \t $ this-> db-> from($ this-> produto_categoria_tabela。'pc'); \t \t $ this-> db-> join('ec_produto pr','pr.codigo_categoria = pc.codigo_produto_categoria'); \t $ this-> db-> group_by('pc.codigo_produto_categoria'); \t \t $ this-> db-> having('COUNT(pc.codigo_produto_categoria)> 0'); \t \t $ this-> db-> order_by(「pc.ordem」,「ASC」); \t \t return $ this-> db-> get() - > result(); – Marcos

+2

@Marcos:隨時發佈您的解決方案作爲答案,並將其標記爲已接受(針對未來的訪問者)。 –