La clé étrangère fournit un lien vers un autre enregistrement de la même table ou d'une autre table (généralement cette dernière). Une jointure utilise des données communes dans deux tables (parfois la même table) pour fournir un lien entre elles.
Si vous avez deux tables que vous souhaitez joindre et que le seul facteur commun entre ces deux tables se trouve dans une troisième table (celle avec toutes les clés étrangères), vous devrez effectuer 2 jointures.
Exemple
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.....
Dans Codeigner :
$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('...');
Vous pouvez trouver toutes les informations dont vous avez besoin ici - http://codeigniter.com/user_guide/database /active_record.html
J'espère que cela vous aidera.