如何从链接到主查询结果的子查询返回MySQL中的字段?

时间:2011-05-09 13:27:11

标签: mysql subquery

我在wordpress数据库上使用的查询遇到了一些问题。下面的查询返回meta_value的正确和预期数据但我的问题来自于我没有从子查询获得原始post_id的字段,所以我无法将特定的meta_value与原始的post_id相关联 - 我可能需要对其进行重组,但我对如何返回与meta_value相关的数据感到有点迷茫找到。

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

举个例子,给定一个或多个post_id('1')的列表,我找到meta_value('2')并查找另一个匹配post_id('2')和指定meta_key('的条目_wp_attached_file'),我需要返回meta_value('image.jpeg')和原始 post_id('1')

提前致谢

1 个答案:

答案 0 :(得分: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';