让我们说:
table users(id, name, ..)
table friends(uid, fid)
我怎样才能得到一些 33456 用户 id 的朋友?
SELECT fid idd, name
FROM users,
friends
WHERE uid = 33456
AND fid = id
但会给我意想不到的结果
SELECT id, fid, name
FROM users,friends where users.id=friends.fid
WHERE users.id = 33456
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
)
这将返回所有带有您朋友姓名的 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
SELECT id, fid, name
FROM users
INNER JOIN friends ON users.id=friends.fid
WHERE users.id = 33456
select id,name from users where id in (select fid from friends where uid=33465)