我是MySQL的新手,我仍然无法理解JOIN表格。
我正在制作在线商店,我需要生成订购商品的电子邮件报告以及产品中的一些自定义字段。
在我的数据库中,我的产品位于wp_posts
,然后我在wp_postmeta
中有自定义字段,现在我希望在wp_woocommerce_order_items
表上看到它的关系。
有人能告诉我怎么做吗?
答案 0 :(得分:2)
第一步是加入wp_woocommerce_order_items
和wp_woocommerce_order_itemsmeta
表,因为元表包含与产品_product_id
匹配的元键post_id
。
这样的事情应该有用(根据必要的字段进行编辑):
SELECT orders.order_item_name, orders.qty, locator.meta_value AS 'locator', stock.meta_value AS 'stock'
FROM wp_postmeta locator
JOIN (
SELECT items.order_item_name AS 'order_item_name', qty.meta_value AS 'qty', product_id.id AS 'id'
FROM `wp_woocommerce_order_itemmeta` qty
JOIN (
SELECT order_item_id, meta_id, meta_key, meta_value AS 'id'
FROM `wp_woocommerce_order_itemmeta`
WHERE meta_key = '_product_id'
) AS product_id
ON qty.order_item_id = product_id.order_item_id
JOIN `wp_woocommerce_order_items` items
ON product_id.order_item_id = items.order_item_id
WHERE qty.meta_key = '_qty'
) AS orders
ON locator.post_id = orders.id
JOIN (
SELECT post_id, meta_key, meta_value
FROM wp_postmeta
WHERE meta_key = '_stock'
) AS stock
ON locator.post_id = stock.post_id
WHERE locator.meta_key = '_locator';