我正在尝试从wordpress数据库中选择metakey值,如下所示:
global $wpdb;
$r = $wpdb->get_col( $wpdb->prepare( "
SELECT meta_value FROM {$wpdb->postmeta}
WHERE meta_key = 'cast'
") );
此代码非常有效,除了它显示未发布帖子的结果。对于那个原因,我试图从post表添加aditional参数,标记为" publish"。我试图像这样查询数据库,但它无法正常工作:
$r = $wpdb->get_col( $wpdb->prepare( "
SELECT wp_postmeta.meta_value
FROM wp_postmeta
LEFT JOIN wp_posts
ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_postmeta.meta_key = 'cast' AND wp_posts.post_status ='publish'
") );
答案 0 :(得分:1)
我自己找到了答案。我不知道它是否是最好的解决方案,但它完成了我的需要。所以,对于其他寻找答案的人来说,我的代码是有效的:
global $wpdb;
$r = $wpdb->get_col( "
SELECT key1.meta_value
FROM $wpdb->postmeta key1
INNER JOIN $wpdb->posts key2
ON key1.post_id = key2.ID
AND key2.post_status ='publish'
WHERE key1.meta_key = 'cast'
" );