• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

显示不在其他表中的数据加入codeigniter

php 来源:irwan dwiyanto 16次浏览

我有2个表,我尝试加入以将两个表与codeigniter结合在一起,但是当我创建查询连接时,有数据不会显示,因为数据不在另一张表再次,我该如何解决这个问题?显示不在其他表中的数据加入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数据?


===========解决方案如下:

使用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)