用户在我的网站上可以有两种类型的关系。关注或朋友。我想用与他们有关系的用户的帖子填充每个用户的新闻提要。到目前为止,我有这个加入:
SELECT *
FROM posts a
LEFT JOIN relationships b
ON a.user_id = b.user_2
WHERE b.user_1 = $user_id AND
b.status IN (1,3,4) OR a.user_id = $user_id
ORDER BY a.post_id DESC
b.status 是我的关系表中确定两个用户之间关系状态的列。1 正在关注,3 是朋友,4 正在关注待处理的好友请求。我的加入效果很好,除了它没有考虑到我的“关系”表中只有一行可以代表任何两个人之间的朋友船。下面有两行。第一个是用户 1(mark) 跟随用户 2(matt) 和用户 2(matt) 跟随用户 1(mark)。但是对于友谊,它要么是一种方式,要么是另一种方式,状态为 3。首先,这是明智的做法吗?或者我也应该为这种类型的 pf 关系设置两行?第二,我怎样才能让我的 JOIN QUERY 也从 user_1 和 user_2 之间存在关系且状态 = 3 的用户那里获取帖子?不考虑 user_1 和 user_2 的顺序?
表结构:
Posts:
| user_id | post_id | story |
-----------------------------
| 1 | 1 | text. |
-----------------------------
Relationships:
| rel_id | user_1 | user_2| status |
--------------------------------------
| 1 | 1 | 2 | 3 |
--------------------------------------