2012-09-07 196 views
2

我想這個SQL查詢轉換成笨查詢笨 - MySQL查詢轉換爲CodeIgniter的活動記錄查詢

SELECT 
    uploads.EMAIL 
FROM 
    uploads 
    JOIN (

    SELECT EMAIL, COUNT(*) as num FROM uploads GROUP BY EMAIL 
) c ON uploads.EMAIL = c.EMAIL 
ORDER BY 
    c.num DESC, 
    EMAIL ASC 

感謝您的幫助 親切的問候

+0

「codeigniter query」是什麼意思?你的意思是喜歡使用Active Record類嗎? –

+0

是的。我不確定如何做子查詢對不起英語不太好 – Adam

回答

2

我不知道你爲什麼使用active record documentation不能算出這個事情,但:

$this->db->select('uploads.EMAIL'); 
$this->db->from('uploads'); 
$this->db->join('(SELECT EMAIL, COUNT(*) as num FROM uploads GROUP BY EMAIL) c','uploads.EMAIL = c.EMAIL','',FALSE); 
$this->db->order_by('c.num desc, uploads.EMAIL asc'); 

然後

$query = $this->db->get(); 

僅供參考,傳遞FALSE作爲第四個參數的db->join()方法會導致其無法逃脫的說法,所以如果你要採取外部變量,你要小心。直到CodeIgniter 3之前,這是執行帶有活動記錄的子查詢而不擴展活動記錄類以添加它們的唯一方法。

+1

謝謝你我的善良先生,我會犧牲我的羊羔爲這個偉大的勝利! – Adam

+0

哈哈,有史以來最好的評論。 – Brendan