首先,我想提一下我在 MYSQL 和 JOIN 方面的技能有限。然而,这就是我所拥有的,也是我想要实现的:
我有默认的 WordPress 表,并且喜欢从某个元键中获取包含 post_name、title、status 和 meta_value 的结果。
这就是我所拥有的:
SELECT
wp_posts.ID, wp_posts.post_name, wp_posts.post_title, wp_posts.post_status, wp_postmeta.meta_value
FROM wp_posts
INNER JOIN
wp_term_relationships ON ( wp_posts.ID = wp_term_relationships.object_id )
INNER JOIN
wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
WHERE (
wp_term_relationships.term_taxonomy_id
IN ( 1, 2, 3 )
)
AND wp_posts.post_type = 'my_post_type'
AND (
wp_posts.post_status
IN (
'my_status_1', 'my_status_2'
)
)
AND wp_postmeta.meta_key = 'my_meta_key'
GROUP BY wp_posts.ID
ORDER BY wp_posts.ID ASC
当每个帖子的 postmeta 为“my_meta_key”时,一切都会按预期工作。但是,如果缺少“my_meta_key”,则该帖子不在结果中。
我猜它是由第二次 INNER JOIN 引起的,但如上所述,我不知道应该用什么替换它。
我确定这很简单