如何在SELECT和JOIN语句中包含ID和ID?

时间:2011-09-01 21:04:22

标签: php mysql select join

我对此完全感到困惑,背后的逻辑不正确,所以我再次向专家求助。

以下是我的表格:

| 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

有什么建议吗?

1 个答案:

答案 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