2013-08-15 2 views
1

У меня есть этот mysql-запрос, и я очень новичок в CodeIgniter, как я могу сделать этот активный запрос записи?Создайте CodeIgniter Active Record из запроса MySQL

SELECT 
    chp_id, 
    chp_destination, 
    cde_name, 
    chp_year, 
    chp_from, 
    chp_to, 
    chp_budget_price_high, 
    chp_medium_price_high, 
    chp_luxury_price_high, 
    chp_budget_price_low, 
    chp_medium_price_low, 
    chp_luxury_price_low, 
    chp_timestamp, 
    chp_comment 
FROM crm_hotel_price 
LEFT JOIN crm_destinations ON cde_id = chp_destination 
WHERE chp_id IN 
    (
     SELECT MAX(chp_id) 
     FROM crm_hotel_price 
     GROUP BY chp_destination, chp_year 
    ) 
ORDER BY 
    chp_id 
+0

это то, что я пытался, и обнаружил, что MySQL подзапрос пока не поддерживается активным record..Is CodeIgniter там таким образом, другой способ, как сделать это с активной записью CI? –

+1

Посмотрите на это -> http://ellislab.com/codeigniter/user-guide/database/results.html. Вы можете сделать что-то вроде '$ query = $ this-> db-> query (" YOUR QUERY "); а затем получить результат' $ query-> result() '. – Boris

ответ

1

Подзапрос еще не поддерживается активной записью, и вы не можете легко расширить класс. Так что вы хотите сделать что-то вроде этого (не проверено)

$this->db->select('chp_id') 
    ->select('chp_destination') 
    ->select('cde_name') 
    ->select('chp_year') 
    ->select('chp_from') 
    ->select('chp_to') 
    ->select('chp_budget_price_high') 
    ->select('chp_medium_price_high') 
    ->select('chp_luxury_price_high') 
    ->select('chp_budget_price_low') 
    ->select('chp_medium_price_low') 
    ->select('chp_luxury_price_low') 
    ->select('chp_timestamp') 
    ->select('chp_comment') 
->from('crm_hotel_price') 
->join('crm_destinations', 'cde_id = chp_destination', 'left') 
->where('chp_id IN (SELECT MAX(chp_id) FROM crm_hotel_price GROUP BY chp_destination, chp_year)') 
->order_by('chp_id'); 
$query = $this->db->get(); 
+0

Я думаю, что ваш код -> order_by ('ORDER BY chp_id'); должен быть таким -> order_by ('chp_id'); –

+0

@markyorky Спасибо, исправлено – Pattle

+0

alrighty :) спасибо также –

Смежные вопросы