2017-12-18 145 views
0

我有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数据?

+0

解决问题的方法是用左加入作为Riyenz答案给出。在此之前,你可以参考https://stackoverflow.com/questions/5706437/whats-the-difference-between-inner-join-left-join-right-join-and-full-join链接来获得简要的解释何时使用哪些连接。迄今为止非常好的答案。我最喜欢。希望你能从中获得帮助。 – Prabhu

+0

@prabhu,谢谢你的建议,在我使用JOIN LEFT但只有一个表之前,它应该匹配我们指定的表,这已经解决了,已经解决了 –

回答

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,在我之前只需使用一张加入左边的表格即可 –

相关问题