2012-04-07 8 views
0

私は以下の3つのテーブルを持っています。私はCodeignitierの方法で照会しようとした1Codeigniterを使って3つのmysqlテーブルをリンクする方法

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

enter image description here

this-

リンクのようにこれらの3つのテーブル間の相互リンク(参加)にしようとしていますが、私は、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)'); 

私が試した(そしてエラーを得た)何あなたは親切にして頂けますか私が間違っていたところを見せて?

答えて

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の3つのすべてのテーブルを選択したい場合も、私はあなたが参加する中で使用かっこを削除した使用された結合方法を参照してください。

これは

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

+0

おかげでたくさんの人がこのクエリを生成します

を編集しました。:) –

関連する問題