【问题标题】:Convert SQL JOIN Query to SQL Codeigniter [duplicate]将 SQL JOIN 查询转换为 SQL Codeigniter [重复]
【发布时间】:2021-07-01 06:59:01
【问题描述】:

我是 Codeigniter 的新手,我想将 SQL 查询转换为 Codeigniter 样式的查询

我的查询如下所示:

SELECT tbl_detail_order.ID, tbl_detail_order.order_id, tbl_detail_order.produk, products.name, tbl_detail_order.qty, tbl_detail_order.harga, tbl_order.tanggal, tbl_pelanggan.nama, tbl_pelanggan.alamat, tbl_pelanggan.telp

FROM tbl_pelanggan 
    INNER JOIN (tbl_order INNER JOIN 
                             (products INNER JOIN tbl_detail_order 
                                       ON products.kd_barang = tbl_detail_order.produk) 
                          ON tbl_order.ID = tbl_detail_order.order_id) 
    ON tbl_pelanggan.ID = tbl_order.pelanggan;

我尝试像这样在 Codeigniter 中实现它

 public function getAllJoin()
{
  $this->db->select('tbl_detail_order.ID, tbl_detail_order.order_id, tbl_detail_order.produk, products.name, tbl_detail_order.qty, tbl_detail_order.harga, tbl_order.tanggal, tbl_pelanggan.nama, tbl_pelanggan.alamat, tbl_pelanggan.telp');
  $this->db->from('tbl_detail_order');
  $this->db->join('tbl_order','tbl_detail_order.order_id = tbl_order.id','INNER');      
  $this->db->join('tbl_pelanggan','tbl_order.pelanggan = tbl_pelanggan.id','INNER');
  $this->db->join('products','products.kd_barang = tbl_pelanggan.id','INNER');
  $query = $this->db->get();
  return $query->result_array();
}

您能更正我的代码吗?是错还是对?

【问题讨论】:

  • 您是否费心测试新版本与旧原始版本?您没有向我们提供任何示例数据库数据,因此我们无法真正对此进行测试。

标签: php mysql codeigniter


【解决方案1】:

正如other post mentions,CodeIgniter DB 语法中没有用于嵌套连接的 API。因此,您只需使用外部的,然后将其余的移动到内联。

public function getAllJoin()
{
  $this->db->select('tbl_detail_order.ID, tbl_detail_order.order_id, tbl_detail_order.produk, products.name, tbl_detail_order.qty, tbl_detail_order.harga, tbl_order.tanggal, tbl_pelanggan.nama, tbl_pelanggan.alamat, tbl_pelanggan.telp');
  $this->db->from('tbl_detail_order');
  $this->db->join('tbl_order INNER JOIN (products INNER JOIN tbl_detail_order ON products.kd_barang = tbl_detail_order.produk) ON tbl_order.ID = tbl_detail_order.order_id','tbl_detail_order.order_id = tbl_order.id','INNER');      
  $query = $this->db->get();
  return $query->result_array();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2019-04-24
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    相关资源
    最近更新 更多