我有两张桌子,我想加入&显示用户角色的名称。这是情况
我的2个表是users_mlh& user_roles_mlh
在users_mlh表的角色列上,我存储用户角色的ID,user_roles_mlh包含名称&用户角色的ID。我想要做的是在我的视图中显示用户角色的名称。
我的表格如下。
我在我的模型中试过这个
$this->db->select('*');
$this->db->from('user_roles_mlh');
$this->db->join('users_mlh', 'users_mlh.role = user_roles_mlh.id');
$this->db->where('users_mlh.role = user_roles_mlh.id');
$query = $this->db->get();
return $query->result_array();
但从上面我得到类似的东西
目前它列出了所有用户级别而不是每个用户的角色
答案 0 :(得分:1)
案例1:如果您想直接访问所有数据而不使用where condition
$this->db->select( "*" );
$this->db->from( 'users_mlh' );
$this->db->join('user_roles_mlh', 'user_roles_mlh.id = users_mlh.role');
案例2:使用Where条件和特定列数据
$this->db->select( 'user_roles_mlh.role_type,users_mlh.name' );
$this->db->from( 'users_mlh' );
$this->db->join('user_roles_mlh', 'user_roles_mlh.id = users_mlh.role');
$this->db->where('users_mlh.id =',1);
最后通过
获得结果 $query = $this->db->get();
return $query->result();
答案 1 :(得分:0)
如果我使用你的表,你应该有以下要求:
SELECT users_mlh.*, JOIN user_roles_mlh.role_type
FROM users_mlh -- list all users
LEFT JOIN user_roles_mlh -- and joind by roles
ON users_mlh.role = user_roles_mlh.id -- condition for joining
通过此请求,您将拥有所有用户,并且角色文本已关联。
因此,如果此请求有效,请在ORM上使用相同的逻辑
答案 2 :(得分:0)
无需为获取角色名称编写单独的查询。在获取用户数据时加入Roles表。
$this->db->select('users_mlh.*,user_roles_mlh.role_type');
$this->db->from('users_mlh');
$this->db->join('user_roles_mlh', 'user_roles_mlh.id = users_mlh.role');
$query = $this->db->get();
return $query->result_array();
试试这个。