如果没有公共字段,如何使用Codeigniter连接三个表?

时间:2018-04-03 09:32:36

标签: php mysql codeigniter-3

让我们假设我的Mysql表是

表1 - 存款明细

  

id | deposit_type |金额| deposit_master_id

     

1 |固定| 100000 | 1

表2 - 存款大师

  

deposit_master_id | bank_id | branch_id

     

1 | 1 | 2

表3 - 银行大师

  

bank_id | bank_name

     

1 | SBI

我知道Codeigniter中的基本SQL Join操作,我也做了。但是这里有一个场景,这三个表没有共同的字段,但我认为它们可以加入,但我没有任何线索。 如何通过存款明细银行大师获取银行名称

示例输出

  

id | bank_name

     

1 | SBI

2 个答案:

答案 0 :(得分:1)

可以使用像这样的查询

//从表中选择你想要的列

 $this->db->select('*');
 $this->db->from('Deposit Details dd'); 
    $this->db->join(' Deposit Master dm', 'dd.deposit_master_id=dm.deposit_master_id', 'inner');
    $this->db->join('Bank Master bm ', 'bm.bank_id =dm.bank_id', 'inner');

答案 1 :(得分:1)

select d.id,bm.bank_name
from Deposit_Details d
inner join Deposit_Master dm on dm.deposit_master_id = d.deposit_master_id
inner join Bank_Master bm on bm.bank_id = dm.bank_id


$this->db->select('Deposit_Details.id,Bank_Master.bank_name');
$this->db->from('Deposit_Details');
$this->db->join('Deposit_Master', 'Deposit_Master.deposit_master_id = Deposit_Details.deposit_master_id');
$this->db->join('Bank_Master', 'Bank_Master.bank_id = Deposit_Master.bank_id');
$query = $this->db->get();