2012-05-24 3 views
1

позволяет сказать:Получить все USERID друзья дают unnexpected результат

table users(id, name, ..) 
table friends(uid, fid) 

Как я могу получить некоторые 33456 идентификатор пользователя друзей?

SELECT fid idd, name 
    FROM users, 
     friends 
WHERE uid = 33456 
    AND fid = id 

Но дали бы мне unnexpected результаты

+0

пытаются использовать полные имена, как friends.uid и т.д .. это устранит возможность конфликта имен. – AurA

+1

что вы хотите получить? имя друзей? –

ответ

2
SELECT id, fid, name 
FROM users,friends where users.id=friends.fid 
WHERE users.id = 33456 
0
SELECT id, fid, name 
FROM users 
INNER JOIN friends ON users.id=friends.fid 
WHERE users.id = 33456 
0
select id,name from users where id in (select fid from friends where uid=33465) 
0

это вернет все ID с именем ваших друзей.

SELECT b.fid, c.name 
FROM users a INNER JOIN friends b ON a.id = b.uid 
    INNER JOIN users c on b.fid = c.id 
WHERE a.id = 33456 
0
SELECT u.name,u.id 
FROM users u 
WHERE u.id IN 
(
SELECT f.fid 
FROM users u INNER JOIN friends f ON u.id = f.fid 
WHERE f.uid = 33456 
) 
Смежные вопросы