2013-02-18 5 views
1

Я пытаюсь получить все элементы, которые в той же команде, как пользователь, который регистрируется вПолучить член, которые принадлежат к команде

примеров Таблицы:.

команды стол:

id  name 
1  Test team 
2  Second team 

член таблицы:

uid  team_id 
4  1 
10  2 
1  2 

Текущий пользователь уже UID = 4.

В этом примере он должен возвращать только 1 пользователь, поскольку зарегистрированный пользователь (uid = 4) принадлежит только одной команде.

Это код, который я в данный момент, но он принимает весь пользователь (являются ли они частью той же самой команды или нет)

$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); 
+0

Это работает как сон, спасибо! –

+0

Добро пожаловать :) –

0

здесь мы идем снова:

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

см SQLfiddle

+0

Это делает только принимает меня, а не других членов, которые являются частью команды. Я часть :-) –

+0

Он должен показывать только вас, поскольку вы единственный член команды id 4; команда id 2 будет иметь 2 участника – Andrew

+0

Да, но если я добавлю свой uid в таблицу участников в команду 2, это покажет только мне, из-за «where member.uid = 4» - он должен показать все члены, которые часть из тех же групп, что и я –

Смежные вопросы