Намиране на приятел

Ev0luti0N

Registered
Имам таблица с приятели също и отделна с потребители.
В таблицата с приятели имам следните полета: friend_user_id, friend_friend_id.
В таблица с потребитлите общо взето ми трябва единствено user_id.
Та Искам да изкарам всички потребители, които не са приятели с мен.
Пробвах с NOT IN, но не ми се получи нещо..

Някакви идеи? :idea:
 
PHP:
$myid = $_SESSION['user_id'];
$query = mysql_query("SELECT * FROM `tablica` WHERE `friend_friend_id`!='$myid'");
така?
 
kriss каза:
PHP:
$myid = $_SESSION['user_id'];
$query = mysql_query("SELECT * FROM `tablica` WHERE `friend_friend_id`!='$myid'");
така?
Никакъв шанс.. Идеята е да провери даденият потребител дали е приятел с мен и ако е да не го изкарва ако не е да го изкарва.. С join става, но още го мъча..
 
нещо аз ли не разбрах..?
friend_friend_id - Ид на приятеля на friend_id..
-> селектира полета, където неговото id не е в friend_friend_id..?
 
kriss каза:
нещо аз ли не разбрах..?
friend_friend_id - Ид на приятеля на friend_id..
-> селектира полета, където неговото id не е в friend_friend_id..?
Не не.
Значи friend_user_id = на потребителят който е предложил приятелство, friend_friend_id = на потребителят на който са предложили приятелство.
user_id = потребителският номер на потребителят.
 
SELECT * FROM `users` WHERE user_id NOT IN (SELECT friend_user_id FROM `friends` WHERE `friend_friend_id` = 'SESS_ID' AND `friend_user_id` = 'SESS_ID') AND user_id NOT IN (SELECT friend_friend_id FROM `friends` WHERE `friend_friend_id` = 'SESS_ID' AND `friend_user_id` = 'SESS_ID')
 
Karcho каза:
SELECT * FROM `users` WHERE user_id NOT IN (SELECT friend_user_id FROM `friends` WHERE `friend_friend_id` = 'SESS_ID' AND `friend_user_id` = 'SESS_ID') AND user_id NOT IN (SELECT friend_friend_id FROM `friends` WHERE `friend_friend_id` = 'SESS_ID' AND `friend_user_id` = 'SESS_ID')
Изкарва всички резултати. :idea:
 
Код:
SELECT * FROM `users` WHERE user_id NOT IN (SELECT friend_friend_id FROM `friends` WHERE friend_friend_id=1 OR friend_user_id=1) AND user_id NOT IN (SELECT friend_user_id FROM `friends` WHERE friend_friend_id=1 OR friend_user_id=1)
само замени "1" с сесията на потребителя
 

Back
Горе