MySql查询为朋友和非当前用户的朋友

时间:2015-05-12 21:32:29

标签: mysql sql

我有2个表,一个用户表和一个朋友表。

users
__________
user_id p.k
username

friends
__________
from_user
to_user
status ENUM('1', '2') //1 for sent/pending, 2 for accepted
primary key('from_user', 'to_user') // both also reference user_id

我对MySQL比较新,并且一直在尝试使用通配符%%创建搜索查询,该搜索查询将根据用户名进行搜索,并返回用户名,user_id和朋友的状态。和非朋友以当前用户的顺序,限制为10.我非常感谢有关此事的任何帮助和指导。以下是我到目前为止的情况。

SELECT Users.user_id, Users.username, Friends.status 
FROM Users 
LEFT JOIN
Friends ON
    Users.user_id IN Friends.to_user, Friends.from_user AND
    'id of user' IN Friends.to_user, Friends.from_user
WHERE

1 个答案:

答案 0 :(得分:0)

试试这个,获取好友链接:

select uf.user_id, uf.username, f.status
from users u
join friends f on u.user_id = f.from_user
join users uf on f.to_user = uf.user_id
where u.username like '%teddy%' and f.status = 2
LIMIT 10;

这是为了得到所有可能的链接,朋友,发送/待处理而不是朋友:

 select uf.user_id, uf.username, f.status
    from users u
    left join friends f on u.user_id = f.from_user
    left join users uf on f.to_user = uf.user_id
    where u.username like '%teddy%'
    LIMIT 10;