正在使用 WORDPRESS 插件,我需要所有产品详细信息,该网站使用 woocommerce 插件, woocomerce 将产品存储为帖子和product meta存储(分布)在许多其他表中。无论如何, 必须获取所有产品(和相关详细信息) 。我用Google搜索并在下面找到了查询。它似乎对其他人有用,但我无法使其发挥作用。
global $wpdb;
$sql = "SELECT
p.id,
p.post_title,
p.guid,
p.post_type,
m.meta_key,
m.meta_value,
meta_sp.meta_value as sale_price,
meta_ap.meta_value as additional_price
FROM wp_posts p
INNER JOIN wp_postmeta m
INNER JOIN wp_postmeta meta_sp ON p.id=meta_sp.post_id
AND meta_sp.meta_key='sale_price'
INNER JOIN wp_postmeta meta_ap ON p.id=meta_ap.post_id
AND meta_ap.meta_key='additional_price'
WHERE p.id=m.post_id
AND m.meta_key='_rentable' AND m.meta_value='yes'";
$results = $wpdb->get_results($sql);
var_dump($results);
Result : array (size=0) empty.
任何人都可以告诉我如何使上述查询工作,或者可能方式获取网站db中的所有产品。
答案 0 :(得分:2)
您错过了ON
,试试这个:
SELECT
p.id,
p.post_title,
p.guid,
p.post_type,
m.meta_key,
m.meta_value,
meta_sp.meta_value as sale_price,
meta_ap.meta_value as additional_price
FROM wp_posts p
INNER JOIN wp_postmeta m ON p.id=m.post_id
INNER JOIN wp_postmeta meta_sp ON p.id=meta_sp.post_id
AND meta_sp.meta_key='sale_price'
INNER JOIN wp_postmeta meta_ap ON p.id=meta_ap.post_id
AND meta_ap.meta_key='additional_price'
WHERE p.id=m.post_id
AND m.meta_key='_rentable' AND m.meta_value='yes'