我对JOIN
有些陌生,我发现很难理解如何使用ORDER BY
和LIMIT
查询一个表并仅使用ORDER 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 BY
和LIMIT
之外我会去哪里?
我已经看到了几种不同的方式,我认为这让我感到困惑,就像我看到的那样:
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任何帮助赞赏:)
答案 0 :(得分:2)
最后会像这样:
Select * from
(SELECT * FROM posts ORDER BY dateSubmitted DESC LIMIT ?,5) as tempPost
LEFT JOIN postcomments on (postscomments.postID = tempPost.ID)