获取属于团队的成员

时间:2013-02-18 23:46:52

标签: php mysql codeigniter

我正在尝试让所有与登录用户位于同一团队的成员。

表格示例:

团队表:

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');

希望有人知道如何解决这个问题: - )

2 个答案:

答案 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)

我们再来一次:

SELECT * 
FROM member
WHERE team_id=(SELECT team_id FROM member WHERE uid=4)

请参阅SQLfiddle