您需要加入post_meta
表2至posts
表,每个元值一次:
SELECT p.ID id, p.post_title title, country.meta_value country, region.meta_value region
FROM {$wpdb->posts} p
JOIN {$wpdb->postmeta} country
ON p.ID = country.post_id AND country.meta_key = \'search_country\'
JOIN {$wpdb->postmeta} region
ON p.ID = region.post_id AND region.meta_key = \'search_region\'
WHERE
p.post_status = \'publish\'
AND p.post_type = \'films\'
ORDER BY p.post_title ASC
我建议给表格加上别名(
p
,
country
, 和
region
) 在两次加入同一个表时,使其更易于阅读。如果你想要另一个
meta_value
同时,您可以加入
post_meta
表附加时间。
通过使用JOIN
您只返回帖子对两个元键都有值的结果。。。如果你想让一个人NULL
你会的LEFT JOIN
取而代之的是桌子。