对多个表执行 Wordpress SQL 查询


Performing a Wordpress SQL query with multiple tables

我有一个名为"points"的自定义字段。我想计算包含该自定义字段并且还具有特定帖子标题的所有帖子的所有积分值。

这就是我到目前为止所拥有的,但是我无法弄清楚如何添加参数,因为它需要来自数据库中的两个不同表:

<?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'

看到后元联接中的两个项目了吗?第一个选择适当的帖子 ID,第二个选择具有正确meta_key值的 postmeta 行,用于您尝试汇总的内容。