2つのテーブルを持つMySQLDBがあります。最初の表:
Posts
ID
post_title
post_content
... etc
そして、追加データを含む2番目のテーブル:
Postmeta
ID
Post_ID (FK)
meta_key
meta_value
必要なデータはmeta_key/valueのペアにあります。ただし、このDBは、2番目のテーブルの各行に1つの情報しか含まれないように編成されています。
例(2番目の表):
ID Post_ID meta_key meta_value
1 5 info 30
ID Post_ID meta_key meta_value
2 5 additional_info 40
ID Post_ID meta_key meta_value
3 6 info 50
ID Post_ID meta_key meta_value
4 6 additional_info 60
だから私がクエリを実行すると
SELECT
posts.id,
posts.post_date,
posts.post_author,
posts.post_content,
posts.post_title,
postmeta.meta_id,
postmeta.meta_key,
postmeta.meta_value
FROM posts INNER JOIN postmeta ON posts.id = postmeta.post_id
WHERE posts.post_type = 'post'
必要なすべてのデータを取得しますが、最初のテーブル(ID / post_contentなど)のデータが何度も繰り返されます。ただし、最初のテーブルのデータは1回だけ必要ですが、2番目のテーブルのすべての追加データは最初のテーブルのIDに関連しています。
これらすべてをどのようにフィルタリングする必要がありますか?いくつかのphpループかもしれませんか?