将 SQL JOIN 查询转换为 SQL Codeigniter

Convert SQL JOIN Query to SQL Codeigniter

我是 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();
}

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

与此 other post mentions 一样,在 CodeIgniter 数据库语法中没有用于嵌套连接的 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();
}