Search code examples
codeigniterjoininner-joincodeigniter-3query-builder

Codeigniter 3 - Query Builder 'join' Method Issue - Records Repeating


Not a Duplicate Question!!!


I am using CodeIgniter 3 - Query Builder Class with MySQLi.


Tables in DB:

'category_level_1' Table:
enter image description here

'category_level_2' Table:
enter image description here


Query in model.php:

$query = $this->db
  ->select('category_level_1.id, category_level_1.category')
  ->from('category_level_1')
  ->join('category_level_2', 'category_level_2.cat_lvl1_id = category_level_1.id', 'inner')
  ->get();

Output :

enter image description here
Values are repeated.


Expected Output :

enter image description here


Issue:

As showed above, output values are repeated according to 'inner' join.


Solution

  • Hope this will help you :

    You should add group_by in your query to get the desired result

    $query = $this->db
      ->select('category_level_1.id, category_level_1.category')
      ->from('category_level_1')
      ->join('category_level_2', 'category_level_2.cat_lvl1_id = category_level_1.id', 'inner')
      ->group_by('category_level_1.id')
      ->get();
      /*print_r($query->result());*/
    

    For more : https://www.codeigniter.com/user_guide/database/query_builder.html