Php codeigniter中的多对多数据库关联
我正在创建一种卡收集程序,使用codeigniter和ion_auth进行身份验证。用户应该能够向其收藏中添加卡片。 所以我有一个用户表、一个卡片表和一个连接/桥接表Php codeigniter中的多对多数据库关联,php,codeigniter,activerecord,associations,Php,Codeigniter,Activerecord,Associations,我正在创建一种卡收集程序,使用codeigniter和ion_auth进行身份验证。用户应该能够向其收藏中添加卡片。 所以我有一个用户表、一个卡片表和一个连接/桥接表 users ID NAME 及 及 我想完成一个SELECT语句,该语句通过用户卡从用户处检索卡 $this->db->select('*'); $this->db->from('cards'); $this->db->join('users_cards', 'user
users
ID
NAME
及
及
我想完成一个SELECT语句,该语句通过用户卡从用户处检索卡
$this->db->select('*');
$this->db->from('cards');
$this->db->join('users_cards', 'users.id = users_cards.user_id', 'inner');
$this->db->join('users', 'users_cards.user_id = users.id', 'inner');
$query = $this->db->get();
return $query->result_array();
我似乎无法理解这些连接的概念。有人能帮帮我吗?看来join语句缺少对“cards”表的引用
$this->db->select('*');
$this->db->from('users_cards');
$this->db->join('users', 'users.id = users_cards.user_id', 'inner');
$this->db->join('cards', 'cards.id = users_cards.card_id', 'inner');
$query = $this->db->get();
return $query->result_array();
这个想法是,您试图通过引用用户卡和其他两个表的相关id来建立用户卡和其他两个表之间的关系,因为您没有加入用户表,所以无法基于users.id引用加入。所以你需要改变
$this->db->join('users_cards', 'users.id = users_cards.user_id', 'inner');
到
$this->db->select('*');
$this->db->from('users_cards');
$this->db->join('users', 'users.id = users_cards.user_id', 'inner');
$this->db->join('cards', 'cards.id = users_cards.card_id', 'inner');
$query = $this->db->get();
return $query->result_array();
$this->db->join('users_cards', 'users.id = users_cards.user_id', 'inner');
$this->db->join('users_cards', 'cards.id = users_cards.card_id', 'inner');