我对此完全感到困惑,背后的逻辑不正确,所以我再次向专家求助。
以下是我的表格:
| Table.Follow |
| OwnerID |用户ID |
| Table.Users |
| ID |用户名|
| Table.Post |
| ID | OwnerID |发布|日期|
我正在尝试从我关注的用户那里获取帖子,包括用户的信息。所以我提出的逻辑......
Follow.OwnerID = ME AND Follow.UserID = Users.ID = Post.OwnerID
但是,我如何在那里添加我自己的帖子?
这是我的SQL:
SELECT * FROM Table.Post
JOIN Table.Users ON Table.Post.OwnerID = Table.Users.ID
JOIN Table.Follow ON Table.Post.OwnerID = Table.Follow.UserID
AND Table.Follow.OwnerID = '$MyID'
ORDER BY Table.Post.Date DESC
但这也没有给我发布帖子,这只提供了我关注的用户的帖子。问题是我正在使用我从Table.Follow获得的ID,显然我无法跟随自己。所以我做了这个,但它不起作用:
SELECT * FROM Table.Post
JOIN Table.Users ON Table.Post.OwnerID = Table.Users.ID
JOIN Table.Follow ON Table.Post.OwnerID = Table.Follow.UserID
AND (Table.Follow.OwnerID = '$MyID' OR Table.Post.OwnerID = '$MyID')
ORDER BY Table.Post.Date DESC
有什么建议吗?
答案 0 :(得分:2)
SELECT *
FROM Table.Post p
LEFT JOIN Table.Follow f
ON p.OwnerID = f.UserID
INNER JOIN Table.Users u
ON p.OwnerID = u.ID
WHERE p.OwnerID = '$MyID'
OR f.OwnerID = '$MyID'
ORDER BY p.Date DESC