Codeigniter数据表并集和排序依据


Codeigniter Datatable Union and Order by

我正在使用codeigniter,并使用jquery数据表进行列表。在codeigniter中,我使用了数据表库,并且在我的sql查询中必须使用order by和union

mysql查询看起来像

SELECT date_format(cp_cuspaydate, '%d-%m-%Y %h:%i:%s %p') as transdate,cp_cusaccno as accno,'Purchase' as particulars,cp_cusamount as amount,
cp_qty as crqty,'-' as drqty, '' as blanceqty
FROM chf_customerpayments
WHERE cp_cusid = 22
UNION
SELECT date_format(credm_reqdate, '%d-%m-%Y %h:%i:%s %p') as transdate,credm_accno as accno,'Redeem' as particulars,'-' as amount,
'-' as crqty,credm_weight as drqty, '' as blanceqty
FROM chf_customerredeemrequest
WHERE credm_cusid = 22 AND credm_status !=2
ORDER BY STR_TO_DATE(transdate,'%d-%m-%Y %h:%i:%s %p') asc;

我需要生成数据表,为此我尝试了以下代码

$this->datatables
              ->select("date_format(cp_cuspaydate, '%d-%m-%Y %h:%i:%s %p') as transdate,cp_cusaccno as accno,'Purchase' as particulars,cp_cusamount as amount,
cp_qty as crqty,'-' as drqty, '' as blanceqty", false)
              ->from('chf_customerpayments')
              ->where('cp_cusid',$this->session->userdata('user_id'))
              ->union('chf_customerredeemrequest')
              ->select("date_format(credm_reqdate, '%d-%m-%Y %h:%i:%s %p') as transdate,credm_accno as accno,'Redeem' as particulars,'-' as amount,
'-' as crqty,credm_weight as drqty, '' as blanceqty", false)
               ->where('credm_cusid = '.$this->session->userdata('user_id').' credm_status !=2');
              echo $this->datatables->generate();

但数据表库中并没有并集函数。如何为我的查询生成数据表。请帮助任何人,提前感谢

在代码点火器活动记录的情况下,不可能进行稍微复杂的查询(如此查询),特别是在嵌套、并集等情况下。

使用$this->db->query("...");以"老式的方式"运行此查询。

确保通过$this->db->escape(variable) 逃离您的数据

在这种情况下,编码器的活动记录并不是设计为在一个查询中有多个"选择"。这意味着,即使添加了"union"关键字(如注释所示),它也会将所有"select"组合到一个语句中。

我只需分别执行两个查询$query1&query2。然后像这样合并结果集:

$union=array_merge($query1,$query2);