我有这个查询:
SELECT
wp_posts.post_author,
wp_posts.post_date,
wp_posts.post_title,
wp_posts.post_content,
wp_posts.post_excerpt,
wp_posts.guid,
wp_posts.post_name AS slug,
wp_posts.ID AS wp_post_id,
wp_posts.post_status,
wp_sfmembers.display_name,
wp_postmeta.meta_key,
wp_postmeta.meta_value
FROM
wp_posts
INNER JOIN wp_sfmembers ON wp_posts.post_author = wp_sfmembers.user_id
INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
where post_status = 'publish' AND post_type = 'post'
ORDER BY post_date DESC
我只想将wp_postmeta合并为一条记录。我希望这是有道理的。
先感谢您。
尝试以下方法。它确实假设您只想要where子句中列出的特定meta_key值。这确实适合您的示例,因为您将排除该列表中未包含的所有meta_key值。它还假定示例中的meta_key值相同,每次都需要作为列来调出。
select wp_posts.post_author,
wp_posts.post_date,
wp_posts.post_title,
wp_posts.post_content,
wp_posts.post_excerpt,
wp_posts.guid,
wp_posts.post_name as slug,
wp_posts.id as wp_post_id,
wp_posts.post_status,
wp_sfmembers.display_name,
min(case when meta_key = '_edit_lock' then wp_postmeta.meta_key end) as meta_key,
min(case when meta_key = '_edit_lock' then wp_postmeta.meta_value end) as meta_value,
min(case when meta_key = '_yoast_wpseo_focuskw' then wp_postmeta.meta_value end) as meta_focus,
min(case when meta_key = '_yoast_wpseo_title' then wp_postmeta.meta_value end) as meta_title,
min(case when meta_key = '_yoast_wpseo_metadesc' then wp_postmeta.meta_value end) as meta_desc
from wp_posts
join wp_sfmembers
on wp_posts.post_author = wp_sfmembers.user_id
join wp_postmeta
on wp_posts.id = wp_postmeta.post_id
where post_status = 'publish'
and post_type = 'post'
and meta_key in ('_edit_lock','_yoast_wpseo_focuskw','_yoast_wpseo_title','_yoast_wpseo_metadesc')
group by wp_posts.post_author,
wp_posts.post_date,
wp_posts.post_title,
wp_posts.post_content,
wp_posts.post_excerpt,
wp_posts.guid,
wp_posts.post_name,
wp_posts.id,
wp_posts.post_status,
wp_sfmembers.display_name
order by post_date desc
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句