2011-05-09 56 views
0

我在使用wordpress數據庫的查詢時遇到了一些問題。下面的查詢返回meta_value的正確和預期的數據,但我的問題來自於我從子查詢沒有得到從原始post_id返回的字段,所以我無法鏈接特定的meta_value與原來post_id - 我可能需要重組這個,但我有點失去了如何返回與它找到的meta_value相關的數據。如何從鏈接到主查詢結果的子查詢中返回MySQL中的字段?

SELECT meta_value 
FROM wp_postmeta 
WHERE post_id IN (SELECT meta_value FROM wp_postmeta WHERE post_id IN ('1','2','3','4')) 
AND meta_key = '_wp_attached_file' 

的樣本數據

post_id meta_key   meta_value 
1   _thumbnail_id  2 
2   _wp_attached_file image.jpg 

因此,作爲一個例子,給出了1個或多個post_ids( '1')的列表,我發現meta_value( '2'),並尋求與其他入門匹配POST_ID( '2')和指定meta_key( '_wp_attached_file'),並且我需要返回兩個meta_value( 'image.jpeg')和原始 POST_ID( '1')

預先感謝

回答

2

只需使用自加入:

select wp1.*, wp2.* 
from wp_postmeta wp1, wp_postmeta wp2 
where wp2.post_id in (1,2,3) 
and wp1.meta_value = wp2.post_id and wp2.meta_key = '_wp_attached_file'; 
+0

謝謝,這就是我一直在尋找的。我不得不稍微編輯它(wp1.post_id在....而不是wp2中),但完成這項工作。 – Tom 2011-05-09 14:01:58