将包含 MAX()、GROUP BY 和 ORDER 的 MySQL 查询转换为 CodeIgniter 活动记录脚本

问题描述 投票:0回答:3

我有这个 mysql 查询,而且我对 CodeIgniter 很陌生。如何将此 mysql 查询转换为 CodeIgniter 的 Active Record?

SELECT 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,
       MAX(chp_timestamp) AS last_updated,
       MAX(chp_id)
FROM crm_hotel_price
LEFT JOIN crm_destinations ON cde_id = chp_destination
GROUP BY chp_destination, chp_year
ORDER BY chp_id
php mysql codeigniter activerecord query-builder
3个回答
2
投票

试试这个:(参考)

$this->db->select('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, MAX(chp_timestamp) AS last_updated, MAX(chp_id)', FALSE);
$this->db->join('crm_destinations', 'cde_id = chp_destination', 'left');
$this->db->group_by('chp_destination, chp_year');
$this->db->order_by('chp_id');
$qry = $this->db->get('crm_hotel_price');
$res = $qry->result(); // or $qry->result_array();

0
投票

尝试:

$rs = $this->db->select('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 , MAX( chp_timestamp ) AS last_updated, MAX( chp_id )', false)
      ->from('crm_hotel_price')
      ->join('crm_destinations', 'cde_id = chp_destination', 'LEFT')
      ->group_by(array('chp_destination', 'chp_year'))
      ->order_by('chp_id')
      ->get()->result_array();

0
投票

请尝试此代码:

 > $this->db->select('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, MAX( chp_timestamp ) AS last_updated, MAX( chp_id )');

$this->db->from('crm_hotel_price');
$this->db->join('crm_destinations','cde_id = chp_destination','LEFT'); // 与另一个表连接
$this->db->group_by('chp_destination,chp_year'); // 用于字段分组
$this->db->order_by("chp_id", "asc"); // 用于对字段值进行排序
$query = $this->db->get();
返回 $query->result_array(); // 它将返回结果
并使用这一行查看整个 SQL 查询。
echo $this->db->last_query();

© www.soinside.com 2019 - 2024. All rights reserved.