以前にこれに似た質問をしたことがありますが、同じ手法を適用しようとしましたが、正常に機能せず、エラーやさまざまな点がありました。
このために sqlfiddle を作成しました。http://sqlfiddle.com/#!2/b1a29
animal_id、animal_name、animal_type_name、shelter_name、animal_type_id、および location_name を返す選択関数を作成しようとしています。
次のコードでうまくやろうとしましたが、明らかに何かが欠けています。
$query = $this->db->query('SELECT animal_id, animal_name, animal_type_name, shelter_name, shop_id, location_name
FROM animals a
INNER JOIN shelter s ON s.shop_id = a.shop_id
INNER JOIN location l ON l.location_id = s.location_id
INNER JOIN animal_types at ON at.animal_type_id = a.animal_type_id');