我需要帮助多对多关系数据库

时间:2015-03-10 14:33:53

标签: mysql codeigniter many-to-many

我正在使用CI和hmvc ..

我有3张桌子:

表1:

s_id | s_name | s_date

表2:

n_id | n_name | n_date

表3包含表1和表2之间的关系:

s_id | n_id

我想通过ID获取表1或表2中的值。

一旦我得到表2的n_id,我想找到并获取表3和表1中的相关值。相关的值匹配具有相同的ID。

请帮忙。

1 个答案:

答案 0 :(得分:1)

我认为这可能适合你。在使用CI时,我在过去做过类似的事情。这是应存在于模型中的Active Records查询。这个查询可以缩短,但我把它弄得很冗,所以你看看发生了什么。

 public function get_ids($n1_id){
    $this->db->select('*');
    $this->db->from('table_3');
    $this->db->join('table_2', 'table_2.n1_id = table_3.n1_id');
    $this->db->join('table_1', 'table.s1_id = table_3.s1_id');
    $this->db->where('n1_id', $n1_id);
    $query = $this->db->get();
    return $query;
}

基本上,如果你有一个id,你可以将它作为参数传递,并选择表3中与id匹配的所有行。然后将表1和表2连接到表3中的匹配行。

如果有效,请告诉我。我没有让表格进行测试。