Sql wpdb选择查询以获取某些元密钥?

Sql wpdb选择查询以获取某些元密钥?,sql,wordpress,Sql,Wordpress,我有下面的代码,我正在尝试获取订单列表 因此,从wcomm\u order\u itemmeta表中,我只想显示meta\u值,其中meta\u键等于_qty或_product\u id,我需要像我一样在单个值上过滤_product\u id。我似乎无法做到这两件事。。我的输出从不显示_qty值,因为我专门过滤了_product_id的值,但我不知道要更改什么 global $wpdb; $wpdb->woocommerce_order_items = $wpdb->prefix .

我有下面的代码,我正在尝试获取订单列表

因此,从wcomm\u order\u itemmeta表中,我只想显示meta\u值,其中meta\u键等于_qty或_product\u id,我需要像我一样在单个值上过滤_product\u id。我似乎无法做到这两件事。。我的输出从不显示_qty值,因为我专门过滤了_product_id的值,但我不知道要更改什么

global $wpdb;
$wpdb->woocommerce_order_items = $wpdb->prefix . 'woocommerce_order_items';
$wpdb->woocommerce_order_itemmeta = $wpdb->prefix . 'woocommerce_order_itemmeta';

$uvuorderposts = $wpdb->get_results( 
    "
    SELECT p.ID, p.post_title, p.post_date, wcom.order_item_name, wcomm.meta_key, wcomm.meta_value
    FROM $wpdb->posts AS p
    INNER JOIN $wpdb->postmeta AS pm ON p.ID = pm.post_id
    INNER JOIN $wpdb->woocommerce_order_items AS wcom ON p.ID = wcom.order_id
    INNER JOIN $wpdb->woocommerce_order_itemmeta AS wcomm ON wcom.order_item_id = wcomm.order_item_id
    WHERE (p.post_type = 'shop_order')
    AND (pm.meta_key = '_wc_authorize_net_aim_charge_captured')
    AND (pm.meta_value = 'yes')
    AND (wcomm.meta_key = '_product_id')
    OR (wcomm.meta_key = '_qty')
    AND (wcomm.meta_value = '2193')
    ORDER BY p.post_date
    "
);

echo "<table>";
foreach ( $uvuorderposts as $uvuorderpost ) 
{
    echo "<tr><td>" . $uvuorderpost->post_title . " - " . $uvuorderpost->ID . "</td><td>" . $uvuorderpost->post_date . "</td><td>" . $uvuorderpost->meta_key . ": " .  $uvuorderpost->meta_value . "</td></tr>";
    echo "<tr bgcolor='#eaeaea'><td colspan='3'>" . $uvuorderpost->order_item_name . "</td></tr>";
}
echo "</table>";

我试图通过使用$uvuorderpost->meta_键['''u qty']在输出中对其进行过滤,但没有成功

我通过以下更改修复了它。刚刚加入那张桌子两次,现在可以用了。不确定这是否是最佳实践,但是的

global $wpdb;
$wpdb->woocommerce_order_items = $wpdb->prefix . 'woocommerce_order_items';
$wpdb->woocommerce_order_itemmeta = $wpdb->prefix . 'woocommerce_order_itemmeta';

$uvuorderposts = $wpdb->get_results( 
    "
    SELECT p.ID, p.post_title, p.post_date, wcom.order_item_name, wcomm.meta_key, wcomm.meta_value, wcomm2.meta_key AS meta_key_qty, wcomm2.meta_value AS meta_value_qty
    FROM $wpdb->posts AS p
    INNER JOIN $wpdb->postmeta AS pm ON p.ID = pm.post_id
    INNER JOIN $wpdb->woocommerce_order_items AS wcom ON p.ID = wcom.order_id
    INNER JOIN $wpdb->woocommerce_order_itemmeta AS wcomm ON wcom.order_item_id = wcomm.order_item_id
    INNER JOIN $wpdb->woocommerce_order_itemmeta AS wcomm2 ON wcom.order_item_id = wcomm2.order_item_id
    WHERE (p.post_type = 'shop_order')
    AND (pm.meta_key = '_wc_authorize_net_aim_charge_captured')
    AND (pm.meta_value = 'yes')
    AND (wcomm.meta_key = '_product_id')
    AND (wcomm.meta_value = '2193')
    AND (wcomm2.meta_key = '_qty')
    ORDER BY p.post_date
    "
);

echo "<table>";
foreach ( $uvuorderposts as $uvuorderpost ) 
{
    echo "<tr><td>" . $uvuorderpost->post_title . " - " . $uvuorderpost->ID . "</td><td>" . $uvuorderpost->post_date . "</td></tr>";
    echo "<tr bgcolor='#eaeaea'><td colspan='2'>" . $uvuorderpost->order_item_name . "</td></tr>";
    echo "<tr bgcolor='#eaeaea'><td colspan='2'>" . $uvuorderpost->meta_key . " : " .  $uvuorderpost->meta_value . "</td></tr>";
    echo "<tr bgcolor='#eaeaea'><td colspan='2'>" . $uvuorderpost->meta_key_qty . " : " .  $uvuorderpost->meta_value_qty . "</td></tr>";        
}
echo "</table>";