-1
請幫我轉換這個SQL來CodeIgniter的ActiveRecord的不使用下列內容:SQL原料到MySQL的CodeIgniter的ActiveRecord的
$this->db->query('SELECT * FROM (SELECT * FROM inbox ORDER BY created_at DESC) AS query GROUP BY id');
請幫我轉換這個SQL來CodeIgniter的ActiveRecord的不使用下列內容:SQL原料到MySQL的CodeIgniter的ActiveRecord的
$this->db->query('SELECT * FROM (SELECT * FROM inbox ORDER BY created_at DESC) AS query GROUP BY id');
CI的Active Record不支持子查詢本身。但是你可以包含一個subquery library like this one並使用它。 我以前沒有使用過這個庫,所以這個沒有經過測試。但應該足以讓你開始。
$this->db->select()->from('query')->group_by('id');
$sub = $this->subquery->start_subquery('select');
$sub->select()->from('index')->order_by('created_at', 'DESC');
$this->subquery->end_subquery('query');
如果問題提出者使用的是CodeIgniter 2.1,那麼這個庫不起作用。該庫使用'_compile_select()'和'get_compiled_select()'方法,這兩個方法在CI 2.1中都不可用。 'compile_select()'是受保護的,'get_compiled_select()'沒有變成2.1。 – birderic 2011-12-19 16:13:49
@birderic - 嗯,我沒有意識到這一點。然後解決方案可能會在這個答案:http://stackoverflow.com/a/6047554/844726 – swatkins 2011-12-19 16:27:39
我可能是錯的,但我試圖編譯內部查詢使用類似於這裏描述的方法的內部查詢:http:// heybigname.com/2009/09/18/using-code-igniters-active-record-class-to-create-subqueries/。據我所知,目前沒有辦法編譯查詢,而無需實際運行查詢。 – birderic 2011-12-19 16:39:06