Sql将两个表连接到另一个没有公共列的表

时间:2017-12-06 19:17:44

标签: mysql join

我有这个子查询,我收到用户关注的用户的帖子。这是子查询。

$query = "SELECT * FROM `Posts` WHERE UserID IN
    (
    SELECT Followed FROM `Follow` WHERE Follower = ?
    )
    ORDER BY PostDate DESC
    ";

// on bind_param ? will be $userID

这很好但我也希望得到用户自己的帖子,然后从个人资料表中获取数据,这样我就可能会抛弃子查询以进行某种连接。我之前使用过内部联接,但个人资料/帖子表格中有一个共同的ID' UserID'但Follow表没有。完全加入是否会起作用还是我必须使用AS?

1 个答案:

答案 0 :(得分:1)

union可能是最好的。

SELECT * FROM posts WHERE UserID = ?
UNION ALL
SELECT P.* 
FROM posts P
INNER JOIN follow F ON F.followed = P.UserID
WHERE F.follower = ?