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

Back to archive index

小島健太郎 kojim****@gmail*****
2013年 3月 21日 (木) 09:57:12 JST


お世話になっております。
質問者です。
ご回答ありがとうございます。

みなさまからアドバイス頂いたように

  $this->db->join("m_staff as s1","d.uke_id=s1.staff_id","left");
  $this->db->join("m_staff as s2","d.tai_id=s2.staff_id","left");
  $this->db->join("m_staff as s3","d.update_id=s3.staff_id","left");

の書き方で正常に動作することを確認することができました。
大変助かりました。
また、アクティブレコードを使用することのメリットも大変参考になりました。

今後ともよろしくお願いいたします。

小島


****************************************

2013年3月20日 18:27 齊藤保 <saito****@jin-s*****>:
> 戸田様
>
> ご教示ありがとうございます。
> とてもよく理解出来ました。
> 弊社でも少し研究してみます。
>
>
>
> 2013年3月20日 15:27 戸田 広 <info****@sciss*****>:
>
>> こんにちは、戸田です。
>>
>> 弊社では、上記の記述を見て分かる通り、アクティブレコードを
>> 使用するのとSQLを自前で組むことの差異を感じられなかったため
>> 使用しない選択をしたのですが、アクティブレコードを使用する事の
>> メリット等ありましたら、ご教示いただけるとありがたいです。
>>
>>
>> 私がすぐ思いつく大きな違いは 2点ありまして、
>> その違いは、開発内容で言えば
>> 初期条件が FIX して変わりにくい委託開発よりも
>> 常に変化・柔軟な対応を求められる
>> 自社パッケージの開発・展開などで利いてくると思っています。
>>
>>
>> 1. Active Record を使うと、仮に RDBMS が変わることになっても
>>    Model のコードを変更する必要がありません。
>>
>> 2. CodeIgniter では、 Active Record を使うと
>>    /application/config/database.php で設定できる dbprefix が
>>    すべての SQL に対して自動的に付与されるようになっています。
>>    dbprefix を変更する時は、 database.php を書き換えるだけで
>>    Model のコードを変更せずに、一元的に変更できます。
>>
>>
>>
>> 以上です。
>>
>>
>>
>> On 2013/03/20, at 12:56, 齊藤保 wrote:
>>
>> 横入りで失礼いたします。
>> JIN SOFTWAREという会社で、自社製品に
>> CodeIgniterを使用させていただいている齊藤と申します。
>> よろしくお願いいたします。
>>
>> アクティブレコードは弊社では使用しておらず、
>> SQLをダイレクトに組んで投げる方式をとっておりますが、
>> アクティブレコードが引数を元に最終的にはSQLを組み上げる
>> ものであるならば、下記のような書き方になるのかと、
>> 推測します。
>>
>>   $this->db->select("*");
>>   $this->db->from(t_daichou as d);
>>   $this->db->join("m_staff as s1","d.uke_id=s1.staff_id","left");
>>   $this->db->join("m_staff as s2","d.tai_id=s2.staff_id","left");
>>   $this->db->join("m_staff as s3","d.update_id=s3.staff_id","left");
>>
>> これによって内部的に
>> select * from t_daichou as d
>>              left join m_staff as s1 on d.uke_id=s1.staff_id
>>              left join m_staff as s2 on d.tai_id=s2.staff_id
>>              left join m_staff as s3 on d.update_id=s3.staff_id
>>
>> というSQLが投げられるようならこれでいけるかと
>> 思います。
>>
>> 弊社では、上記の記述を見て分かる通り、アクティブレコードを
>> 使用するのとSQLを自前で組むことの差異を感じられなかったため
>> 使用しない選択をしたのですが、アクティブレコードを使用する事の
>> メリット等ありましたら、ご教示いただけるとありがたいです。
>>
>> ちなみに弊社では今後も自社製品(受注も含め)には全て
>> CodeIgniterを使用する計画でおります。
>> session周りで若干バグ臭い動きもありますが、回避出来ない
>> レベルでなく、何より敷居の低さ、手軽さが魅力で、軽量なのに
>> 必要な機能が揃っていると実感しています。
>>
>> 導入の際には日本CodeIgniterユーザ会の発信される情報を
>> 頼りにさせていただきました。あらためて御礼申し上げます。
>>
>> 今後ともよろしくお願い申し上げます。
>>
>>
>>
>>
>> 2013年3月19日 18:57 Kenichi Hayashi <kenic****@gmail*****>:
>>>
>>> 林です。こんにちは。
>>>
>>> > 要は同じテーブルをleftjoinで複数回参照する場合の書き方ですが、
>>> > 何かそのような記述方法というものがあるのででしょうか?
>>>
>>> m_staffにそれぞれエイリアスを指定してみてはどうでしょう。
>>>
>>> "m_staff as s1"
>>> "m_staff as s2"
>>> "m_staff as s3"
>>>
>>> のような感じで。
>>>
>>> --
>>> Kenichi Hayashi
>>>
>>> _______________________________________________
>>> Codeigniter-users mailing list
>>> Codei****@lists*****
>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>>
>>
>>
>>
>> --
>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>>
>> 〒167-0043  東京都杉並区上荻1-16-3 森谷ビル4B
>>    JIN SOFTWARE株式会社
>>            代表取締役 齊藤 保
>> TEL: 03-6915-1215 FAX: 03-6915-1216
>> Mobil: 090-4416-0111
>> Mail  saito****@jin-s*****    WEB http://jin-soft.jp
>>
>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>> _______________________________________________
>> Codeigniter-users mailing list
>> Codei****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>>
>>
>>
>> _______________________________________________
>> Codeigniter-users mailing list
>> Codei****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>>
>
>
>
> --
> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> 〒167-0043  東京都杉並区上荻1-16-3 森谷ビル4B
>    JIN SOFTWARE株式会社
>            代表取締役 齊藤 保
> TEL: 03-6915-1215 FAX: 03-6915-1216
> Mobil: 090-4416-0111
> Mail  saito****@jin-s*****    WEB http://jin-soft.jp
>
> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
> /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>




Codeigniter-users メーリングリストの案内
Back to archive index