我正在尝试创建一个类似twitter的系统,用户可以在其中相互连接&那么他们将能够在后看到彼此
这是用户表
+-----+------------+---------+
| id | name |username |
+-----+------------+---------+
| 1 | Phillip | user1 |
| 2 | Another | user2 |
+-----+------------+---------+
连接表
+---------+-----------+--------------+--------------+
| id | follower | following | status |
+---------+-----------+--------------+--------------+
| 1 | user1 | user2 | 0 |
| 2 | user3 | user1 | 1 |
+---------+-----------+--------------+--------------+
后表
+---------+-----------+--------------+--------------+
| post_id | content | title | username |
+---------+-----------+--------------+--------------+
| 1 | hello guyz| eg1 | user1 |
| 2 | example1 | eg 2 | user2 |
+---------+-----------+--------------+--------------+
查询我尝试
SELECT
post.*
FROM users
LEFT JOIN connection ON (users.username = connection.follower
OR users.username = connection.following)
INNER JOIN messages ON (
users.username = post.username
OR connection.following = post.username
)
WHERE users.username = 'user1'
GROUP BY post.id
LIMIT 0, 8
这个查询可能有什么问题,因为这个查询也是不完整的
让您更好地理解->
假设我的名字是example&如果我向example2&他接受了我的请求,然后CCD_;他怎么能在他的时间轴
对所需结果的查询是
SELECT * FROM `posts`
WHERE `username` = 'user1'
OR `username` IN (SELECT `follower` FROM `connection` WHERE `following`='user1' AND `status`=1)