在codeigniter中加入2个以上的数据库表错误:1066

so i kinda new with codeigniter and im trying to join 3 table from my database

  • database 1 : dkm (id, tgl, ref, etc)

  • database 2 : order_product (kode_barang, packing, nama_barang, etc)

  • database 3 : product (kodeprod, tglpakai, etc)

im already trying what other ppl do to join more than 2 table in codeigniter but i got this error :

Error Number: 1066

Not unique table/alias: 'order_product'

SELECT * 
      FROM `order_product` 
      JOIN `order_product` ON `order_product`.`kode_barang` = `dkm`.`id` 
      JOIN `order_product` ON `order_product`.`kode_barang` = `produksi`.`kodeprod`

This is my code :

Bukaka_model.php

    public function getOrderProduct()
        {
            $this->db->select('*');
            $this->db->from('order_product');
            $this->db->join('order_product','order_product.kode_barang = dkm.id');
            $this->db->join('order_product','order_product.kode_barang = produksi.kodeprod');
            $query = $this->db->get();
            return $query->result();
        }

You're trying to join to the same table multiple times, instead you need to join to the other tables once each.

You just need to change the names of the table you're joining to:

public function getOrderProduct()
    {
        $this->db->select('*');
        $this->db->from('order_product');
        $this->db->join('dkm','order_product.kode_barang = dkm.id');
        $this->db->join('produksi','order_product.kode_barang = produksi.kodeprod');
        $query = $this->db->get();
        return $query->result();
    }

Try this,

Here, you have a mistake in joining tables, in CI join() in the first parameter you need to pass/write table name with you want to join

public function getOrderProduct()
    {
        $this->db->select('*');
        $this->db->from('order_product');
        $this->db->join('dkm','order_product.kode_barang = dkm.id');
        $this->db->join('produksi','order_product.kode_barang = produksi.kodeprod');
        $query = $this->db->get();
        if($query->num_rows() > 0)
        {
           return $query->result();
        }else{
           return array();
        }
    }
Try this:

public function getOrderProduct()
    {
        $this->db->select('*');
        $this->db->from('order_product');
        $this->db->join('dkm','dkm.id= order_product.kode_barang');
        $this->db->join('produksi',' produksi.kodeprod =  order_product.kode_barang');
        $query = $this->db->get();
           return $query->result();

    }