私はpostmetaテーブルを使ってwordpress用のカスタムコードを書いています。アイテムはここに格納され、共通のpk1はpost_idです。これをmysqlとPHPでクエリするより良い方法はありますか
は、しかし、私がやっている何
または類似のものをsource_ratingな
- source_site
- source_author
- としてpostmetaのクリック可能な部分の束を持っています。これで、同じsource_siteまたはsource_authorを持つ異なる投稿の複数の投稿データがテーブルに保持されます。
ユーザはsource_authorをクリックすると、このsource_authorにリンクしているすべての投稿または記事を含む新しいテーブルに移動します。
問題はpost-idのpk1ではなくpostmeta値にリンクしていることです。
これは、残りのデータを取得することを意味します。追加のクエリを実行するか、同じテーブルに結合する必要があります。
これは私の質問に私をもたらします。結合またはサブクエリを実行する方がよいでしょうか。
さらに問題は、ポストメタテーブルにはさまざまなデータとキーと値がすべて格納されているため、必要な部分をクエリするのが難しいということです。
ので、テーブルが、私はそうは考えないことができるすべてをして作者のための最初のデータをつかむためにある、ただ、このデータをつかむためにクリーンな方法を探して
|meta_id|post_id|meta_key|meta_value| |1 | 2 |source_author | Dan Holmes | |2 | 2 |source_site |http://somesite.com|
次のようになります。
$the_post_ids = select post_id from postmeta where meta_key='source_author' and meta_value='Dan Holmes' foreach($the_post_ids as $post_id) { select * from postmeta where post_id=$post_id; }
これはすべて非常に擬似コードなので、データがかなり大きくなると、これがクリックされる各セクションのオーバーヘッドが多くなり事実私は単一の配列に複数の選択を行う必要があります。
これを処理するより良い方法はありますか?
Aがお勧めの方法だろう参加、IN句を使用せずに、別のオプションです。 PHPでサブクエリを実行するとパフォーマンスが低下します。 –