コレクションと投稿という2つのテーブルがあります。私は、コレクション名と、ユーザーが収集した各コレクションから3つの投稿を表示する必要があります。コレクションの中には、3つ以下のポストがあり、ポストがないものもあります。また左ジョイントクエリの結果をもう一度取得する
MySQLテーブル
コレクション
| collection_id | collection_name | uid |
| 1 | My collection 01 | 1 |
| 2 | My collection 02 | 1 |
| 3 | My collection 03 | 1 |
| 4 | My collection 04 | 2 |
| 5 | My collection 05 | 2 |
| 6 | My collection 06 | 1 |
投稿
| posts_id | post_title | cid |
| 1 | post title 1 | 1 |
| 2 | post title 2 | 1 |
| 3 | post title 3 | 1 |
| 4 | post title 4 | 3 |
| 5 | post title 5 | 2 |
| 6 | post title 6 | 3 |
CIDがある私は(記事の合計数ではありませんが、ポストは、クエリによって生成)の記事をカウントする必要がありますコレクションID。だから、私がしたいと思うのは、ユーザーIDです。結果を表示したい
3 posts from My collection 01
post title 1
post title 2
post title 3
1 posts from My collection 02
post title 5
2 posts from My collection 02
post title 4
post title 6
上記の表に追加したダミーデータに従って例を作成しました。私は左で試してみました
は、私はコレクション名と1つのポストを得ることができ、このクエリではありません運
SELECT * FROM collections LEFT JOIN posts ON posts.cid= collections. collection_id WHERE posts ON posts.cid= collections. collection_id AND collections. uid=1 ORDER BY collections. collection_id DESC LIMIT 0, 16
に参加します。そして、(他の内部1)
しかし、私は2つのクエリを実行した場合、それは動作します
SELECT * FROM collections WHERE uid=1 ORDER BY collection_id DESC LIMIT 0, 16
私はコレクションIDを取得しながら、内部に別のクエリを実行して上記のクエリ
SELECT * FROM posts WHERE cid=$collection_id ORDER BY post_id DESC LIMIT 0, 3
Iのループ単一のクエリでそれをするのが大好きです。あなたの助けが大変ありがとうございます。