[Codeigniter-users] 1つのマスタをleftjoinで複数回参照

Zurück zum Archiv-Index

小島健太郎 kojim****@gmail*****
2013年 3月 19日 (火) 18:02:15 JST


お疲れ様です。小島と申します。

CodeIgniterのアクティブレコードで質問させてください。

例えば以下のような台帳系テーブルがあるとします。
(サンプルとして障害対応記録のようなものを例に挙げます)

t_daichou
(受付者ID,受付内容,対応者ID,対応内容,更新者ID,更新日)
uke_id | uke_naiyou | tai_id | tai_naiyou | update_id | updatedate
00013 | test | 00023 | test | 00999 | 2013-01-01
00002 | test | 00301 | test | 00008 | 2013-01-03
00992 | test | 00003 | test | 00192 | 2013-01-04
00432 | test | 00231 | test | 00204 | 2013-01-04
00011 | test | 00022 | test | 00003 | 2013-01-05
00054 | test | 00031 | test | 00098 | 2013-01-07

このとき、受付者IDも対応者IDも更新者IDもスタッフマスタ(m_staff)からとってくる場合、CodeIgniterのModelへ下記のような記述をした場合、当然エラーとなります。

function getList(){

  $this->db->select("*");
  $this->db->from(t_daichou);
  $this->db->join("m_staff","t_test.uke_id=m_staff.staff_id","left");
  $this->db->join("m_staff","t_test.tai_id=m_staff.staff_id","left");
  $this->db->join("m_staff","t_test.update_id=m_staff.staff_id","left");

}

要は同じテーブルをleftjoinで複数回参照する場合の書き方ですが、
何かそのような記述方法というものがあるのででしょうか?

(通常のSQLだったら回避するような書き方があるようですが
アクティブレコード(?)でどのような記述となるのでしょうか)
ないようでしたらあきらめがつきます。

宜しくお願い致します。




Codeigniter-users メーリングリストの案内
Zurück zum Archiv-Index