2015-12-02 2 views
0

Я искал и все еще чувствую себя потерянным.

My SQL DB, как это
bf_putnr -> colums: PUTNR_ID | PUTNR
данных:
PUTNR_ID PUTNR
1 put_1
2 put_2
3 put_12
4 put_28
5 put_34

bf_rioo -> colums: RIOO_ID | PUTA | PUTB
RIOO_ID PUTA PUTB
1 put_1 put_2
2 put_1 put_28
3 put_12 put_1


PUTA и PUTB такие же, как PUTNR в таблице bf_putnr

в CodeIgniter я хотел бы получить PUTNR_ID при получении всех данных bf_rioo
Присоединение двух колоний к одному столбцу в codeigniter

Это то, что я придумал,

   $this->db->from('bf_rioo'); 

       $this->db->join('bf_putnr AS A', 'bf_rioo.PUTA = A.putnr'); 
       $this->db->join('bf_putnr AS B', 'bf_rioo.PUTB = B.putnr'); 

но это только возвращает второй присоединиться. Я думаю, что второе соединение переписывает данные с первого. Я получаю все колонки из bf_rioo и всех столбцов из bf_putnr, но только присоединился к последнему заявлению объединения .....?

Как получить соединение на putnr, чтобы вернуть данные для PUTA и PUTB ??

+0

Если имена столбцов совпадают, вы можете указать им псевдоним, прежде чем присоединяться к ним. Сделайте 'select ('table_name.column_name как псевдоним')'. – Andrew

+0

Это создает данные PUTA и PUTB из bf_rioo, и я также хотел бы получить PUTNR_ID из таблицы. Bf_putnr –

+0

. Вам нужно сказать, что это левое объединение '' join (table, condition, 'left'); '' так что вы может получить все результаты, когда что-либо соответствует ... в настоящее время вы получаете только совпадение, когда оба соединения возвращают результаты. – ahmad

ответ

0

Вы можете использовать оба условия соединения в тех же операторах соединения.

$this->db->from('bf_rioo'); 
$this->db->join('bf_putnr AS A', 'bf_rioo.PUTA = A.putnr AND bf_rioo.PUTB = A.putnr); 
+0

возвращает пустой результат, я думаю, что это делает неправильное соединение –

+0

Теперь я получаю его, массив заполняется два раза для каждая запись bf_rioo !! –

+0

Мне нужно сделать array_search на bf_rioo.PUTA и PUTNR, чтобы получить ID :) –

Смежные вопросы