我有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
答案 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;