【问题标题】:(mysql) Get woocommerce Order by meta_key and product_id(mysql) 通过 meta_key 和 product_id 获取 woocommerce 订单
【发布时间】:2014-04-17 13:55:29
【问题描述】:

我有一个 mysql 问题。

我有这个选择

SELECT DISTINCT t2.meta_key,t2.meta_value
FROM wp_woocommerce_order_items AS t1
JOIN wp_woocommerce_order_itemmeta AS t2 ON t1.order_item_id = t2.order_item_id
JOIN wp_posts as t3 ON t3.ID=t1.order_id
WHERE t2.order_item_id IN(SELECT distinct t1.order_item_id FROM wp_woocommerce_order_items AS t1
JOIN wp_woocommerce_order_itemmeta AS t2 ON t1.order_item_id = t2.order_item_id WHERE t2.meta_key like "_product_id" AND t2.meta_value = 99) AND t2.meta_key="member_id" AND t3.post_status like "publish"

此 Select 查询获取“_product_id”等于 99 的所有“member_id”(meta_key)。

我有一个很好的结果。它可能不是“优雅”,但它是有效的。

我现在的问题是,我需要获取 _product_id 等于 99 的所有 member_id 并且 订单未取消。

另外,我不知道“order_status”是哪个表以及真正的键是什么。

所以,

感谢您的帮助!

编辑

我添加了

JOIN wp_posts as t3 ON t3.ID=t1.order_id

WHERE t3.post_status = "publish"

我需要的当前值在表中:wp_term。

谢谢

【问题讨论】:

    标签: php mysql wordpress woocommerce


    【解决方案1】:

    好的,我明白了。

    此查询获取所有“元值”(此处为:member_id)

    • 在所有订单上
      • 订单状态不是:“失败”、“取消”或“退款”
      • 其中订单的产品 ID 为 99
      • 订单未放入垃圾箱。

    所以:

    SELECT t2.meta_value
    FROM wp_woocommerce_order_items AS t1
    JOIN wp_woocommerce_order_itemmeta AS t2 ON t1.order_item_id = t2.order_item_id
    WHERE t2.order_item_id IN(SELECT DISTINCT oi.order_item_id
    FROM wp_posts, wp_postmeta, wp_term_relationships tr,wp_term_taxonomy tt,
         wp_terms te, wp_woocommerce_order_itemmeta oi, wp_woocommerce_order_items ii 
    WHERE tt.taxonomy like "shop_order_status"
    AND te.term_id = tt.term_id
    AND te.slug  NOT IN ('failed','cancelled','refunded')
    AND tr.term_taxonomy_id = tt.term_taxonomy_id
    AND oi.order_item_id = ii.order_item_id
    AND oi.meta_key = '_product_id'
    AND oi.meta_value = 99
    AND ii.order_id = wp_posts.ID
    AND wp_postmeta.post_id = tr.object_id
    AND wp_posts.post_status = 'publish') AND t2.meta_key like "member_id"
    

    我希望能帮助一些人。

    如果您对此查询有更优雅或更优化。

    随时告诉我们:-)

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2018-03-16
      • 2020-10-31
      相关资源
      最近更新 更多