Мне было интересно, как я могу получить данные из таблицы3 с использованием 2 внешних ключей. Сначала я покажу вам свои таблицы, а затем попытаюсь объяснить, что я пытаюсь сделать и как я это делаю.Извлечь данные из таблицы с внешним ключом
Table1
ID Primary key
Table2
ID Foreign key
foodID Foreign Key
Table3
foodID Primary key
food
Так что я бы первым получить идентификатор в первой таблице и сравнить его с ID во второй таблице и получить foodID (обратите внимание, это соотношение является 1 ко многим, так что я могу иметь много foodIDs за ID). Затем я хочу вывести все продукты с помощью foodID. Вот пример того, что я имею в виду, потому что я не чувствую, что это слишком ясно.
Скажем, у нас есть и ID = 1
и в этом мы имеем foodID = 1
и foodID = 2
и, наконец foodID из 1 означает food = pasta
и foodID 2 означает food = mince meat
. Поэтому в конце я хотел бы выводить как pasta
, так и mince meat
.
Heres код, который я до сих пор, в приведенном выше примере это будет только выход pasta
и не mince meat
:
public function getFood($id){
$data = $this->db->get_where('Table2', array('ID' => $id)); //Where $id is the ID in Table1
$Result = $data->result();
foreach($Result as $row){
$fID = $row->foodID;
}
$data = $this->db->get_where('Table3', array('foodID' => $fID));
return($data);
}
Heres мой взгляд, где я вывожу питание:
foreach($results as $row){
echo $row->food;
}
Ive выскочил это в мою модель, но я получаю синтаксическую ошибку '$ result = $ this-> db-> get(); 'на этой строке не слишком уверен, почему, хотя все остальное имеет смысл. Если возможно, вы можете дать мне ссылку, чтобы прочитать о методе 'JOIN', потому что я никогда не использовал его до – user3116846
Вот ссылка на код ignighter: http://ellislab.com/codeigniter/user-guide/database/active_record.html и учебное пособие по присоединениям: http://www.tutorialspoint.com/mysql/mysql-using-joins.htm –
его, потому что отсутствовала полуточка, и спасибо за руководство – user3116846