我有一个标准的Twitter式架构,用户可以关注并跟随其他用户。我想选择关注其他两个特定用户的用户。
我们在users
表中有四个用户。
--------------
| id | name |
--------------
| 1 | Alan |
| 2 | Peter |
| 3 | Clare |
| 4 | Julia |
--------------
relationships
表描述了谁跟随谁。 followed_id
和follower_id
是用户的外键。
----------------------------------
| id | followed_id | follower_id |
----------------------------------
| 1 | 1 | 4 |
| 2 | 2 | 4 |
| 3 | 1 | 2 |
| 4 | 4 | 2 |
| 5 | 1 | 3 |
----------------------------------
我想只选择跟随Alan和Peter的用户(即结果应该是Julia)。我该怎么做?
答案 0 :(得分:0)
我认为你需要加入两次关系表与人员表,如下面的查询
SELECT DISTINCT relationships.follower_id,followers.name from relationships
INNER JOIN users as followers on relationships.follower_id = followers.id
INNER JOIN users as followed on relationships.followed_id = followed.id
where followed.name IN('Alan','Peter');