如何使用Codeigniter链接三个mysql表

时间:2012-04-07 10:27:24

标签: php mysql codeigniter codeigniter-2

我有以下三个表。我试图在这三个表之间链接(加入) -

link 1

table1.code=table2.account-code  
table1.code=table3.t-code      
table2.voucher_no=table3.voucher_no 

enter image description here

我尝试以Codeignitier的方式进行查询,但是我收到一条错误消息,指出table1不是唯一的或类似的东西。

这是我尝试的(并得到了错误)

  $this->db->select('*');
   $this->db->from('table2');
   $this->db->join('table3', 'table2.voucher_no = table3.voucher_no');
  $this->db->join('table1', '(table1.code = table2.account_code)');
  $this->db->join('table1', '(table1.code = table3.t_code)');

请你告诉我我做错了什么?

1 个答案:

答案 0 :(得分:2)

$this->db->select('table1.* , table2.* , table3.*');
$this->db->from('table2');
$this->db->join('table3', 'table2.voucher_no = table3.voucher_no','left');
$this->db->join('table1', 'table1.code = table2.account_code AND table1.code = table3.t_code','left');
$this->db->get();

如果要选择所有三个表c我的选择语句 另外看看如何使用连接我删除了你在连接中使用的括号。

EDITED

这将产生此查询

SQL: SELECT `table1`.*, `table2`.*, `table3`.* FROM (`table2`) LEFT JOIN `table3` ON `table2`.`voucher_no` = `table3`.`voucher_no` LEFT JOIN `table1` ON `table1`.`code` = `table2`.`account_code` AND table1.code = table3.t_code

用于测试目的

http://brettdewoody.com/labs/active-check/index.php