我有一个posts
表 id
列等等,以及 votes
表 post_id
, value
专栏等等。每个post_id
可以在 votes
中重复 table 。
现在我想从数据库中选择投票最多的帖子(以及票数),并且我尝试了下一个:
$query = "SELECT p, SUM(v.value) FROM {$wpdb->posts} p, wp_wti_like_post v JOIN p.id v.post_id WHERE 1=1";
$myrows = $wpdb->get_results( $query );
var_dump($myrows);
但它检索到一个空数组。
注意:{$wpdb->posts}
是帖子的正确表格
最佳答案
您需要按 post.id 进行分组才能获得每个帖子的正确金额。然后您可以按该总和降序排序并获取第一行(= 最高值)。
SELECT
p.*, /* Not sure if this will work. Maybe you have to
specify exact fields you need, although MySQL
is pretty forgiving. */
SUM(v.value) AS number_of_votes
FROM
{$wpdb->posts} p
INNER JOIN wp_wti_like_post v ON v.post_id = p.id
GROUP BY
p.id
ORDER BY
SUM(v.value) DESC
LIMIT 1";
关于php - 使用简单的 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119178/