在这上呆了几个小时,似乎无法正确查询。
有两个角色,(老师和学生)。我希望它能选择所有user_id以及所有尚未成为朋友并且具有与给定用户相反角色的用户的角色。
这是我到目前为止所拥有的。我尝试使用左右联接进行实验,但是发现不断得到意想不到的结果。
任何有帮助的人。
select distinct(opposites.id) new_friend, role
from (
select user_id
from users
right join relationships
on
relationships.user_id = ?
) strangers
inner join
(
select * from users
where role != (
select role from users where users.id = ?
)
) as opposites;
以下是关系表的结构。
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| user_id | int(11) | NO | PRI | NULL | |
| friend_id | int(11) | NO | PRI | NULL | |
+-----------+---------+------+-----+---------+-------+
users表具有一个id属性,这是它的主键。