php - (mysql) 通过meta_key和product_id获取woocommerce订单

标签 php mysql wordpress woocommerce

我有 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"

此选择查询获取所有“member_id”(meta_key),其中“_product_id”等于 99。

我取得了很好的成绩。它可能不“优雅”,但很有效。

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

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

所以,

感谢您的帮助!

编辑

我添加了

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

WHERE t3.post_status = "publish"

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

谢谢

最佳答案

好的,我明白了。

此查询采用所有“meta_value”(此处: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"

我希望能帮助一些人。

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

请随时告诉我们:-)

关于php - (mysql) 通过meta_key和product_id获取woocommerce订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23135130/

相关文章:

php - 为什么我的 JSON 数组查询不起作用?

javascript - Bootstrap TabPanel 选项卡 - 禁用页面滚动到元素的 ID

php - 不正确的前缀键 MySQL

mysql - 无法将 Wordpress 连接到 MySQL 数据库

css - Wordpress 和 ninja 表单 - 样式表单

javascript - 修复触摸设备上的响应式导航

php - Woocommerce 可变产品未正确显示

javascript - 将用户重定向回注册页面,但将其填写的表单保留在 php 中

php - 调用未定义的函数imagewebp(Dockerfile,php,gd,webp)

MYSQL 组合使用相同列的两个计数