使用外键从表中检索数据

时间:2013-12-24 17:29:10

标签: php mysql codeigniter

我想知道如何使用2个外键从table3中检索数据。我会首先向你展示我的桌子,然后尝试解释我想要做什么以及我是如何做的。

Table1
ID Primary key

Table2
ID Foreign key
foodID Foreign Key

Table3
foodID Primary key
food 

所以我首先在第一个表中获取ID并将其与第二个表中的ID进行比较并得到一个foodID(注意这个关系是1到多个,所以每个ID可以有很多foodID)。然后我想通过使用foodID输出所有食物。这是我的意思的一个例子,因为我感觉不太清楚。

假设我们有ID = 1,我们有foodID = 1foodID = 2,最后foodID为1表示food = pasta,foodID为2表示food = mince meat。所以最后我想输出pastamince meat

这是我到目前为止的代码,在上面的示例中,它只会输出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);
    }  

继承我输出食物的地方:

foreach($results as $row){
            echo $row->food;
        }

1 个答案:

答案 0 :(得分:3)

您只需要加入:

public function getFood($id){
    $this->db->select('*');
    $this->db->from('Table3');
    $this->db->join('Table2', 'Table2.ID = Table3.foodID');
    $this->db->where('Table2.Id',$id);

    $result = $this->db->get();
    return $result;
}