相关子查询不起作用

时间:2014-07-14 21:22:30

标签: sql correlated-subquery

我试图查询Wordpress帖子和PostMeta表格。由于Wordpress"实体属性值"在PostMeta表的设计中,每个查询查询多个元值很困难。需要相关的子查询。

这是我目前的SQL。我使用子查询通过Post_ID列将PostMeta表连接到自身,但内部查询无法识别外部查询的Post_ID列。

select p.id, p.post_date, tmp.product_name, pm.meta_value as provider_id
from wp_postmeta pm join wp_posts p on p.id=pm.post_id 
join ( 
    select post_id, meta_value as product_name from wp_postmeta 
    where meta_key = 'product_name' and post_id = pm.post_id 
) tmp on tmp.post_id=p.id 
where pm.meta_key='provider_id' and p.post_type='product_listing';

1 个答案:

答案 0 :(得分:0)

抱歉,我发现相关的子查询需要进入SELECT子句,而不能用作JOINed表。

select p.id, p.post_date, pm.meta_value as provider_id,
( 
    select meta_value from wp_postmeta 
    where meta_key = 'product_name' and post_id = pm.post_id 
) as product_name 
where pm.meta_key='provider_id' and p.post_type='product_listing';