MYSQL выбрать общих друзей

Таблица моих друзей имеет следующие столбцы: id, userID, userID2, state

userID и 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. Я не совсем уверен, почему он не работает.

Solutions Collecting From Web of "MYSQL выбрать общих друзей"

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

 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