Frsal
Frsal

Reputation: 21

Join more than 2 database table in codeigniter Error : 1066

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

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

Upvotes: 0

Views: 83

Answers (3)

Jacky
Jacky

Reputation: 781

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();

    }

Upvotes: 0

M.Hemant
M.Hemant

Reputation: 2355

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

Upvotes: 1

Urza
Urza

Reputation: 219

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

Upvotes: 2

Related Questions