Php 获取属于团队的成员
我正在尝试获取与登录用户在同一团队中的所有成员 表格示例: 团队表:Php 获取属于团队的成员,php,mysql,codeigniter,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个团队 这是我目前使用的代码,但它占用了所有用户(无论他们是否属于同一团队) 希望有人对如何解决这个问题有任何意见:-)我们再来一次: S
id name
1 Test team
2 Second team
成员表:
uid team_id
4 1
10 2
1 2
登录用户的uid=4
在本例中,它应该只返回1个用户,因为登录的用户(uid=4)只属于1个团队
这是我目前使用的代码,但它占用了所有用户(无论他们是否属于同一团队)
希望有人对如何解决这个问题有任何意见:-)我们再来一次:
SELECT *
FROM member
WHERE team_id=(SELECT team_id FROM member WHERE uid=4)
请参见我不确定,但我猜您希望获得登录用户所在团队的所有成员。在这种情况下,请尝试:
$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);
您没有登录用户的where子句。它还应该包含作为团队一部分的成员,我是其中的一部分。它只包含我自己,而不包含作为团队一部分的其他成员:-)它应该只显示您,因为您是团队id 4的唯一成员;团队id 2将有2个成员,但如果我将uid添加到团队2的members表中,它也只会显示我,因为“where member.uid=4”-它应该显示与我属于同一团队的所有成员
$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);