【发布时间】:2018-08-30 10:33:20
【问题描述】:
我正在使用 SQL Query 来获取产品的 _sku。 这是我的查询。但我得到 NULL 作为回应。 谁能指出我错过了什么? 基本上使用这种方式,我可以获得任何带有订单详细信息的产品元数据。
select
p.ID as order_id,
p.post_date,
max( CASE WHEN pm.meta_key = '_billing_email' and p.ID = pm.post_id THEN pm.meta_value END ) as billing_email,
max( CASE WHEN oim.meta_key = '_product_id' and oim.order_item_id = oi.order_item_id THEN oim.meta_value END ) as product_id,
max( CASE WHEN pm.meta_key = '_sku' and p.ID = oim.meta_value THEN pm.meta_value END ) as sku,
( select group_concat( order_item_name separator '|' ) from wp_woocommerce_order_items where order_id = p.ID ) as order_items
from
wp_posts p
join wp_postmeta pm on p.ID = pm.post_id
join wp_woocommerce_order_items oi on p.ID = oi.order_id
join wp_woocommerce_order_itemmeta oim on oim.order_item_id = oi.order_item_id
group by
p.ID
【问题讨论】:
-
分享你的 3tables 数据和你想要的输出
-
行
max( CASE WHEN pm.meta_key = '_sku'不能工作,因为pm是wp_postmeta表shop_order帖子类型而不是product帖子类型...您需要包含一个子查询product在产品 sku 的where部分中在中输入帖子。 -
我已经删除了 where,sku 仍然是 NULL
标签: mysql sql wordpress join woocommerce