2012-01-18 2 views
1

Мой стол «друзей» имеет следующие столбцы: идентификатор, идентификатор пользователя, userID2, состояниеMYSQL выбрать взаимные друзья

ID_пользователя и userID2 не имеют конкретный порядок ввода в базу данных.

настоящее время я использую этот запрос, чтобы найти пользователей друзей:

$quer = mysql_query(" 
SELECT CASE WHEN userID=$id THEN userID2 ELSE userID END AS friendID 
FROM friends WHERE userID=$id OR userID2=$id"); 

Я попробовал это, однако он не работает:

SELECT 
CASE WHEN userID=$id OR userID=$session THEN userID2 
ELSE userID END AS friendID 
FROM friends WHERE (userID=$session OR userID2=$session) 
AND (userID=$id OR userID2=$id) AND friendID!=$session 

также она не должна возвращать строку, если friendID = $ session (который я добавил к моему второму запросу)

EDIT: Я хочу вернуться как строки friendID что $ id и $ session имеют общий характер. Я не совсем уверен, почему он не работает.

+2

Что вы пытаетесь получить как выход? Почему ваш второй запрос «не работает»? –

+0

Вы используете '$ session' для userID и friendID. В таком случае? И какова фактическая стоимость '$ session'? – Arjan

+0

Я хочу вернуться как строки friendID, которые имеют общий идентификатор $ id и $. Я не совсем уверен, почему он не работает. –

ответ

5

После объяснения (и на самом деле читает «взаимную» часть):

SELECT a.friendID 
FROM 
     (SELECT CASE WHEN userID = $id 
         THEN userID2 
         ELSE userID 
       END AS friendID 
     FROM friends 
     WHERE userID = $id OR userID2 = $id 
    ) a 
    JOIN 
     (SELECT CASE WHEN userID = $session 
         THEN userID2 
         ELSE userID 
       END AS friendID 
     FROM friends 
     WHERE userID = $session OR userID2 = $session 
    ) b 
    ON b.friendID = a.friendID 
+0

Первый запрос был всего лишь примером того, как я выбираю друзей пользователей (это прекрасно работает). Однако теперь я пытаюсь выбрать друзей пользователей, которые у них есть у другого пользователя. –

+0

$ id будет противоположным пользователем, $ session будет сам, поэтому я хочу узнать, какие у меня общие друзья с $ id –

+0

Ах, извините. Итак, у двух друзей есть идентификаторы: '$ id' и' $ session'. Хорошо, редактирование. –

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