Показать данные, которых нет в другой таблице, с кодом codeigniter соединения

0

У меня есть 2 таблицы, я пытаюсь объединить 2 таблицы с codeigniter, но когда я создаю соединение запроса, есть данные, которые не отображаются, потому что данные не находятся в другой таблице снова, как я могу решить эту проблему??

tbl_fruit
_______________
| id |  fruit | 
|----|--------|
| 0  | manggo | 
| 1  | apple  | 
| 2  | banana | 
| 3  | orange | 
| 4  | avocado| 

tbl_proc
_______________
| id |  proc  | 
|----|--------|
| 0  | juice  | 
| 1  | blend  | 
| 2  | shake  | 

tbl_master
____________________________________
| id | id_fruit | id_proc | client  |
|----|----------|---------|---------|
|  0 |     2    |         |         | //How display on join
|  1 |     1    |    2    | nana    |
|  2 |     3    |    2    | george  |
|  3 |     4    |    0    | smith   |
|  4 |     0    |         | billy   | //How display on join
|  5 |     2    |    1    | Jack    |

tbl_result
----------------------------------------
| no | name fruit | name proc | client |
|----|------------|-----------|--------|
|  0 |  apple     | shake     | nana   |
|  1 |  orange    | shake     | george |
|  2 |  avocado   | juice     | smith  |
|  3 |  banana    | blend     | smith  |    

    $query = $this->db->select('*')
                      ->from('tb_result')
                      ->join('tb_fruit', 'tb_fruit.id = tb_result.id_fruit')
                      ->join('tb_proc', 'tb_proc.id = tb_result.id_proc')
                      ->get();
    return $query->result(); 

как отображать данные на tbl_master, который не имеет данных в других таблицах, но отображается в таблице в соединении?

Теги:
codeigniter
codeigniter-3

1 ответ

1
Лучший ответ

Используйте LEFT JOIN при третьем параметре вашей функции соединения

$query = $this->db->select('*')
                      ->from('tbl_master')
                      ->join('tbl_fruit', 'tbl_fruit.id = tbl_master.id_fruit', 'left')
                      ->join('tbl_proc', 'tbl_proc.id = tbl_master.id_proc', 'left')
                      ->get();
    return $query->result(); 

Это должно привести к этому SQLFIDDLE

  • 0
    спасибо решено, оказалось, что это два с использованием LEFT, прежде чем я просто использовать одну таблицу, которая JOIN LEFT

Ещё вопросы

Сообщество Overcoder
Наверх
Меню