一つ前の投稿(『CodeIginter(3.0.3)のjoin()で遭遇したこと』)の追記。CodeIgniterでjoin()を使用した際に、joinするテーブル同士に同名のカラムがあった場合、from等は関係なく、最後にjoinされたテーブルのカラムが優先される模様。※例えば、joinするテーブルAとテーブルBの、どちらにもcreated_at(作成日)カラムがある場合など。同名のカラムがある場合は、どのテーブルのカラムを使うのか、select()で明示してやる必要があるようです。空沢綾文1今後のために勉強していたCodeIgniterで、バグなのか自分の理解が足らずにおかしな挙動になったのかはわからないけど、変な現象に行き当たったので、忘れた時のためにメモ。■内容joinしてselectした結果の、ユニーク列の値が全て同じ値(全部1)になった。前提として、一対一の関係になっている以下の様なテーブルがあるとします。・テーブルAid,col1,テーブルB_id1,test1,12,test2,2・テーブルBid,col2,col31,test1_title,test1_text2,test2_title,test2_textこれを、joinで繋げて変数に格納しようとした時に、以下のようにすると、『内容』に書いてあるような事例に遭遇しました。$this->db->get()->result_array();$queryの中身(実際は配列)id,col1,テーブルB_id,テーブルB.id,col2,col31,test1,1,test1_title,test1_text1,test2,2,test2_title,test2_text↑『id』カラムの値が全て同じ値になってしまう。これを回避するには、以下のようにします。$this->db->get()->result_array();$queryの中身(実際は配列)id,col1,テーブルB_id,テーブルB.id,col2,col31,test1,1,test1_title,test1_text2,test2,2,test2_title,test2_text↑正しいデータになる。末尾にテーブルAのidを追加して、それを参照すれば良いかと思って記述を追加したら、何故か出力結果のカラムは同じままデータだけが正しい状態になりました。joinしたテーブル同士のユニーク列の名前被りが原因で起こるバグなのではないかと思いますが、詳しいところはわかっていません。当サイトに掲載されたソースコードの利用にあたって、その利用者がいかなる不利益・損害を受けても、当サイト管理人は一切の責任を免れるものとします。