[WordPress] 複数のテーブルをワードプレスの SQL クエリを実行します。

スポンサーリンク

質問

私はある「ポイント」と呼ばれるカスタム フィールドすべてのカスタム フィールドが含まれてしているユーザーも、特定のポストのタイトルの記事のすべてのポイントの値をカウントするためします

これは私がこれまでのところ、しかし、それは、データベース内の 2 つの異なるテーブルから来る必要があるので、パラメーターを追加する方法を考え出す問題を抱えている:

<?php

// set the meta_key to the appropriate custom field meta key
$meta_key = 'cf_PointValue';
$total_points = $wpdb->get_var( $wpdb->prepare( 
"
    SELECT sum(meta_value) 
    FROM $wpdb->postmeta 
    WHERE meta_key = %s 
", 
$meta_key
) );
echo "<p>Total points: {$total_points}</p>";

?>

何か他のテーブルと結合を追加する必要があると仮定します。このような何かが私はそれを行うしたい:

<?php

// set the meta_key to the appropriate custom field meta key
$meta_key = 'cf_PointValue';
$total_points = $wpdb->get_var( $wpdb->prepare( 
"
    SELECT sum(meta_value) 
    FROM $wpdb->postmeta 
    WHERE meta_key = %s 

    WHERE post_title = 'name a specific post'
    WHERE wp_terms = 'tag1'

", 
$meta_key
) );
echo "<p>Total points: {$total_points}</p>";

?>

提供できるあらゆる助けを前もってありがとう !

答え

この postmeta 事はキー値テーブルありいくつか特別なモンキー ビジネスを使用します。特別な結合操作がかかります。このようなクエリが必要です:

SELECT SUM(m.meta_value) AS points
  FROM $wpdb->posts p
  JOIN $wpdb->postmeta m ON p.id = m.post_id AND m.meta_key = %s
 WHERE p.post_title = 'name a specific post'
   AND p.post_status = 'publish'

postmeta の結合の 2 つの項目を参照してくださいか?最初の 1 つが適切な投稿 id をピックアップし、2 番目の postmeta 値を持つ行が正しい meta_key 合計ヒットしようとしているを選択します

http://stackoverflow.com/questions/28162372/performing-a-wordpress-sql-query-with-multiple-tables

スポンサーリンク

Leave a Reply