提问者:小点点

SQL:获取列表并将输出中的所有项用于另一个查询


我使用多个SQL查询来完成一个表,但我认为也可以只使用一个查询就得到它。结构如下:

有表'WP_PostMeta';包括id、post_id、meta_key和meta_value作为列。在该表中,meta_key=x的行在meta_value部分中有用户ID值。我想用给定的meta_key和用户id值(在meta_value部分)获得post_id值,并用该post_id获得给定meta_key的某些meta_values。这里有一个例子。假设用户ID为9:

选择CONCAT(从“wp_postmeta”中选择“meta_value”,其中“meta_key”=y且“post_id”=(从“wp_postmeta”中选择“post_id”,其中“meta_key”=x且“meta_value”=9));(从“wp_postmeta”中选择“meta_value”,其中“meta_key”=z且“post_id”=(从“wp_postmeta”中选择“post_id”,其中“meta_key”=x且“meta_value”=9));(从“

通过该查询,我连接了给定元键的元值,这些元键属于与给定用户ID相关的post。(y,z,w)。问题是,对于给定的用户ID,我可以正确地得到我想要的东西,但是我想给出一个用户ID的列表,并得到它们相应的串联结果。我怎样才能做到呢?谢谢你的帮助。


共1个答案

匿名用户

您似乎在描述这样的内容(使用MySQL语法):

select p.*, group_concat(pm.metavalue) as metavalues
from wp_posts p left join
     wp_postmeta pm
     on pm.post_id =  p.post_id
where p.user_id in ( . . . )
group by p.user_id;