Klucz obcy zapewnia łącze do innego rekordu w tej samej lub innej tabeli (zwykle tej drugiej). Złączenie wykorzystuje wspólne dane w dwóch tabelach (czasem w tej samej tabeli), aby zapewnić połączenie między nimi.
Jeśli masz dwie tabele, do których chcesz dołączyć, a jedynym wspólnym czynnikiem między tymi dwoma stołami jest trzecia tabela (ta z wszystkimi kluczami obcymi), będziesz musiał wykonać 2 połączenia.
Przykład
SELECT *.table1, *.table2 FROM table1
LEFT JOIN foreign_key_table ON foreign_key_table.id1 = table1.id
LEFT JOIN table2 ON foreign_key_table.id2 = table2.id
WHERE.....
W Codeignter:
$this->db->select('*.table1, *.table2');
$this->db->from('table1');
$this->db->join('foreign_key_table', 'foreign_key_table.id1 = table1.id');
$this->db->join('table2', 'foreign_key_table.id2 = table2.id');
$this->db->where('...');
Wszystkie potrzebne informacje znajdziesz tutaj - http://codeigniter.com/user_guide/database /active_record.html
Mam nadzieję, że to pomoże.