我正在使用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);