2

私は少し慣れていないので、1つのテーブルをクエリして、 「正しい」テーブルでのみ使用JOINする方法を理解するのが難しいと感じています。基本的に、2 つのテーブルを個別にクエリする場合は、次のクエリを使用します。ORDER BYLIMITORDER BYJOINED

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

'?' bind_param()ページネーションを作成しているため、私の略です。次に、「右」の 2 番目のテーブルについて説明します。

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

私の理解では、2 つのテーブルを一緒に「リンク」して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 に答える