2012-07-19 34 views
0

我想調用在名爲postmeta的表中輸入的10個最受歡迎的post_ids。計數熱門排在表中,將ID與其他表中的名稱匹配

另外還有一張名爲posts的獨立表,它包含帖子標題,帖子內容和ID。

我想要做的是首先找出哪個post_id具有最多的postmeta條目,然後查詢'posts'表並將post_ids匹配到發佈名稱。我想輸出與最常用的10個ID相關的帖子名稱,然後輸入條目數量。例如:

蘋果(152)
熊(80)
餅(31)
橙子(12)

我是一個有點新的PHP和無法弄清楚如何查詢這兩個這些表得到我想要的。 到目前爲止,我有這個得到計數:

global $wpdb; 
$popularity = " 
select post_id, count(post_id) as cnt 
from $wpdb->postmeta 
group by post_id 
order by cnt desc 
limit 10"; 
}; 

回答

0
$popularity = "SELECT pm.post_id, COUNT(pm.post_id) AS cnt, p.title 
       FROM $wpdb->postmeta pm JOIN $wpdb->posts p 
       ON pm.post_id = p.id GROUP BY pm.post_id ORDER BY cnt DESC LIMIT 10"; 

你沒有給在單獨的表足夠的信息,所以我假設該表中的列名titleid

+0

沒關係。我似乎無法使用foreach獲得輸出($ wpdb-> get_results($ popular)作爲$ row){ $ post_title = $ row-> post.post_title; $ id = $ row-> ID; echo $ post_title。$ id; – marctain 2012-07-19 17:53:01

+0

它們不會與表名一起選擇,它們只是列的名稱。所以如果選擇'post.post_title',它會返回'post_title' – 2012-07-19 18:02:28

相關問題