簡體   English   中英

concat在條件為左的情況下加入活動記錄codeigniter

[英]concat in condition left join active record codeigniter

我對活動記錄codeigniter版本2和特殊條件有疑問,例如:

$this->db->select('t_po_detail_item, t_process_shif, m_machine_lines, m_machine_mac, t_po_detail_no,
                       t_prod_lot, CONCAT(t_prod_lot, "-", t_prod_sublot) AS nolot,
                       COUNT(t_prod_sublot) AS qtybox, SUM(t_process_qty) AS qtypcs,
                       ROUND((SUM(t_process_qty)*m_process_weight)/1000,1) AS qtyberat', FALSE);
    $this->db->join(self::$table2, 't_process_prod_id = t_prod_id', 'left')
             ->join(self::$table3, 't_prod_lot = t_po_detail_lot_no', 'left')
             ->join(self::$table5, 't_process_machine = m_machine_id', 'left')
             ->join(self::$table4, 'CONCAT_WS("-",t_po_detail_item, t_process_cat) = CONCAT_WS("-",m_process_id, m_process_proc_cat_id)', 'left');
    $this->db->where('t_process_cat', 16);
    $this->db->group_by('nolot');
    $query  = $this->db->get(self::$table1);

concat WS有特殊的條件加入條件。 如果我使用標准查詢mysql,則查詢運行正常。

$sql = 'SELECT t_po_detail_item, t_process_shif, m_machine_lines, m_machine_mac, t_po_detail_no, t_prod_lot, CONCAT_WS("-",t_prod_lot, t_prod_sublot) AS nolot,
            COUNT(t_prod_sublot) AS qtybox, SUM(t_process_qty) AS qtypcs, ROUND((SUM(t_process_qty)*m_process_weight)/1000,1) AS qtyberat
            FROM `t_process`
            LEFT JOIN t_prod ON t_process_prod_id = t_prod_id
            LEFT JOIN t_po_detail ON t_prod_lot = t_po_detail_lot_no
            LEFT JOIN m_machine ON t_process_machine = m_machine_id
            LEFT JOIN m_process ON CONCAT_WS("-",t_po_detail_item, t_process_cat) = CONCAT_WS("-",m_process_id, m_process_proc_cat_id)
            WHERE t_process_cat=16
            GROUP BY(nolot)';

    $query  = $this->db->query($sql);

我的活動記錄代碼中有錯誤嗎? 問候,

Neos。

當在Codeigniter查詢構建器內部使用MySQL函數時,您需要將函數放在引號""之外,因此您需要傳遞一個可選的第四個參數以進行連接,即說要逃避輸入,否則查詢將變為:

$this->db->join($table, $condition, $join_type, false);

在此處閱讀更多信息: CI Docs-查詢生成器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM