2012-11-07 129 views
2

我需要一些幫助,MySQL查詢MySQL的標籤系統

我使用wordpresses標記系統,我自己設計的一些表

的想法是拉回來的是有共同的標籤的物品清單與原來的職位,我會盡我所能來解釋

比方說您有5個標籤塔加TAGB湘火炬後等

我想運行mysql的一個查詢,會拉回來列表排序其他項目共有多少個標籤

我想它會根據與原始帖子關聯的標籤計數創建一個新列。

因此,如果一個職位有相同的5個標籤我會看到POST_ID和5中的新列

| post_id | in_common | 
----------------------- 
| 35 |  5  | 
----------------------- 
| 109 |  5  | 
----------------------- 
| 100 |  4  | 

等。

但我什至不知道從哪裏開始的這個查詢

的標籤是wordpresses,並讓所有的帖子基於一個單一的標籤,我可以用

SELECT * 
FROM wp_posts 
inner JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_ID 
inner JOIN wp_terms ON wp_terms.term_id = wp_term_relationships.term_taxonomy_id 
WHERE wp_terms.name = 'tax' 

回答

0

正如你提到的wordpress我猜你正在使用PHP。所以我建議使用PHP來構建一個逗號分隔(並妥善轉義)的當前帖子term_taxonomy_id的列表,然後使用這樣一個簡單的查詢來獲得所有帖子都有共同標籤的列表:

SELECT wp_posts.ID, COUNT(*) 
FROM wp_posts 
JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_ID 
WHERE term_taxonomy_id IN ('.$the_list.') 
GROUP BY wp_posts.ID 
+0

謝謝,你一直是一個巨大的幫助:) – user1806445