У меня есть следующие таблицы:SQL заявление, что заказы выбраны идентификаторы первого с условием
team_members
userid
teamid
пользователей
uid
name_f
name_l
друзья
friend_id
friend_one
friend_two
Я использую следующий оператор для выбора uid и profile_pic пользователей, которые принадлежат определенной команде.
SELECT DISTINCT u.uid, u.profile_pic
FROM friends f, users u, team_members m
WHERE m.teamid =$team_var
AND u.uid = m.userid
Я также должен выполнить следующие действия, чтобы выбрать идентификатор пользователя и profile_pic из пользователей , которые являются друзьями с вошедшего в систему пользователя и принадлежат к определенной команде.
SELECT DISTINCT u.uid, u.profile_pic
FROM friends f, users u, team_members m
WHERE m.teamid =$team_var
AND u.uid = m.userid
AND m.userid = f.friend_two
AND f.friend_one =$session_id
Я ищу способ, чтобы присоединиться к этим два и вместо запуска 2 запросов, выполнить один единственный запрос, который можно заказать и список пользователей, которые с друзьями вошедшего в систему пользователя в верхней части. Итак, предположим, что в определенной команде есть 30 пользователей, и 5 из этих пользователей являются друзьями с зарегистрированным пользователем, я бы хотел, чтобы первые 5, перечисленные в цикле while, следуя за заявлением, были такими же, как у друзей с остальной частью 25 случайным образом показаны.
Спасибо за ваше время.
В таблице сопоставления друзей у вас есть логическое дублирование для friend_one и friend_two, таких как {{x, y}, {y, x}}? –
Да, я делаю Тим. Это делается следующим образом, чтобы записать соединение друга (5 и 10 являются идентификаторами пользователя): friend_one: 5 friend_two: 10 - friend_one: 10 friend_two: 5 – user1011713
Если у кого есть предложения, пожалуйста, дайте мне знать ... Я ' Очень сильно застрял на этом. – user1011713