2

我有点陌生JOIN,我发现很难理解如何使用和查询一张表,ORDER BY并且LIMITORDER BY在我JOINED认为的“正确”表上使用?所以基本上,如果我要单独查询这两个表,我会使用这些查询:

SELECT * FROM posts ORDER BY dateSubmitted DESC LIMIT ?,5 

“?” 代表我bind_param(),因为我正在创建一个分页。现在对于我的“正确”第二张桌子:

SELECT * FROM postcomments WHERE postcomments.postID = posts.ID ORDER BY dateSubmitted DESC

据我的理解,我想将两个表“链接”在一起,LEFT JOIN以便我将从“左”表(作为帖子)接收所有数据。

SELECT * FROM posts LEFT JOIN postcomments ON postcomments.postID = posts.ID

现在我可以做到这一点,但我不确定除了我的ORDER BYLIMIT两张桌子我会在哪里?我见过几种不同的方式,我认为这让我感到困惑,就像我见过这样的:

SELECT p.* FROM posts p ORDER BY posts.dateSubmitted DESC LIMIT ?,5 
LEFT JOIN (SELECT * FROM postcomments 
WHERE postscomments.postID = p.ID ORDER BY postcomments.dateSubmitted);

但我真的不确定如何构建我的查询:S任何帮助表示赞赏:)

4

1 回答 1

2

最后会是这样:

Select * from
(SELECT * FROM posts  ORDER BY dateSubmitted DESC LIMIT ?,5) as tempPost
LEFT JOIN postcomments on (postscomments.postID = tempPost.ID)
于 2013-01-14T13:24:06.273 回答