我正在尝试让所有与登录用户位于同一团队的成员。
表格示例:
团队表:
id name
1 Test team
2 Second team
会员表:
uid team_id
4 1
10 2
1 2
登录用户的uid = 4。
在此示例中,它应该只返回1个用户,因为登录用户(uid = 4)仅属于1个团队。
这是我目前的代码,但它取决于所有用户(无论他们是否属于同一团队)
$this->db->select('*');
$this->db->from('teams');
$this->db->join('members', 'members.team_id = teams.id');
$this->db->join('users', 'members.uid = users.id');
$this->db->group_by('uid');
希望有人知道如何解决这个问题: - )
答案 0 :(得分:3)
我不确定,但我猜你想要让登录用户的团队中的所有成员都参与其中。在那种情况下,尝试:
$user_id = 4 or $this->session->userdata('user_id');
$sql = "SELECT * FROM ( SELECT team_id FROM members WHERE uid = $user_id) tid
JOIN members m ON m.team_id = tid.team_id
LEFT JOIN team_table tt ON tt.id = m.team_id
GROUP BY m.uid";
$query = $this->db->query($sql);
答案 1 :(得分:0)