簡體   English   中英

在codeigniter查詢中轉換mysql查詢

[英]convert mysql query in codeigniter query

將MySQL查詢轉換為Codeigniter查詢

當前查詢:


$query = "SELECT a.*, b.cost AS future_cost, b.start_date AS future_date
          FROM (
            SELECT * FROM (
              SELECT * FROM outbound_routes 
              ORDER BY start_date
            ) x 
          GROUP BY pattern
          ) a
          LEFT JOIN (
            SELECT * FROM outbound_routes 
            ORDER BY start_date
          ) b 
          ON a.pattern = b.pattern AND a.id != b.id
          GROUP BY a.pattern";

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

在粗體查詢中,我想附加搜索變量,例如

 $this->db->where('pattern','1');

任何幫助和想法將不勝感激。

不幸的是,我認為不可能使用codeigniters 活動記錄類將where子句附加到現有SQL中。 活動記錄類只能處理表之間的簡單聯接。

要將其附加到現有查詢中,可以使用查詢綁定將變量傳遞給查詢。

$query = "SELECT a.*, b.cost AS future_cost, b.start_date AS future_date
          FROM (
            SELECT * FROM (
              SELECT * FROM outbound_routes 
              ORDER BY start_date
            ) x 
          GROUP BY pattern
          ) a
          LEFT JOIN (
            SELECT * FROM outbound_routes 
            ORDER BY start_date
          ) b 
          ON a.pattern = b.pattern AND a.id != b.id
          GROUP BY a.pattern
          WHERE pattern = ?";

$result = $this->db->query($query, array(1));

試試這個

$this->db->select('select a.*, b.cost AS future_cost, b.start_date AS future_date');
$this->db->from('(select * from   (select * from outbound_routes order by start_date) x group by pattern) a');
$this->db->join('(select * from outbound_routes order by start_date) b', 'a.pattern = b.pattern and a.id != b.id','left ');
$this->db->where('a.pattern','1');
$this->db->group_by("a.pattern"); 
$result=$query = $this->db->get();

活動記錄

或參見CodeIgniter子查詢

暫無
暫無

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

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