子查询返回超过 1 行的 Wordpress postmeta 查询

问题描述

我正在尝试从子站点的帖子和 postMeta 表中提取数据:

SELECT xyz_8_posts.ID,(select xyz_8_postMeta.Meta_value
from xyz_8_postMeta
inner join xyz_8_posts
on xyz_8_postMeta.post_id = xyz_8_posts.ID
where xyz_8_postMeta.Meta_key = 'presentation_title'
AND xyz_8_postMeta.post_id = xyz_8_posts.ID
) as 'Presentation Title'


FROM xyz_8_posts
WHERE xyz_8_posts.post_type = "presenters"

我收到“子查询返回超过 1 行”错误。我不明白这是为什么。如果我将 WHERE 子句中的 xyz_8_posts.ID 替换为实际 ID,则查询将返回一个标题

解决方法

您有一个额外的 JOIN,您只需要一个相关的子查询:

SELECT p.ID,(select pm.meta_value
       from xyz_8_postmeta pm
       where pm.post_id = p.ID and
             pm.meta_key = 'presentation_title'
      ) as Presentation_Title
FROM xyz_8_posts p
WHERE p.post_type = 'presenters'