I'm attempting to perform a different join for fields if the post_parent of an ID is other than a 0.
An Example: A field has a parent id of 1234, I intend to query the wp_postmeta table by the parent ID, not the post ID for the intended fields because the parent ID is not a 0. ( if this makes sense )
I have attempted to achieve what I intend for the first Billing Address 1 field, but I'm getting a syntax issue with the "THEN" usage in the IF statement, please see below
SELECT
wp_posts.ID,
wp_posts.post_title,
pm1.meta_value as 'Billing Address 1',
pm2.meta_value as 'Billing Address 2',
pm3.meta_value as 'Billing City',
pm4.meta_value as 'Billing State',
pm5.meta_value as 'Billing Postcode',
pm6.meta_value as 'Billing Email',
pm7.meta_value as 'Billing Phone',
CONCAT_WS(' ',pm9.meta_value,pm8.meta_value) as 'Billing Full Name',
pm10.meta_value as 'Shipping First Name',
pm11.meta_value as 'Shipping Last Name',
pm12.meta_value as 'Shipping Address 1',
pm13.meta_value as 'Shipping Address 2',
pm14.meta_value as 'Shipping City',
pm15.meta_value as 'Shipping State',
pm16.meta_value as 'Shipping Postcode',
pm17.meta_value as 'Shipping Cost',
pm18.meta_value as 'Order Subtotal',
pm19.meta_value as 'Discount',
pm20.meta_value as 'Refund Total'
FROM wp_posts
LEFT JOIN wp_postmeta AS pm1 ON IF(pm1.post_parent = 0 THEN wp_posts.ID = pm1.post_id AND pm1.meta_key='_billing_address_1' ELSE wp_posts.post_parent = pm1.post_id AND pm1.meta_key='_billing_address_1')
LEFT JOIN wp_postmeta AS pm2 ON (wp_posts.ID = pm2.post_id AND pm2.meta_key='_billing_address_2')
LEFT JOIN wp_postmeta AS pm3 ON (wp_posts.ID = pm3.post_id AND pm3.meta_key='_billing_city')
LEFT JOIN wp_postmeta AS pm4 ON (wp_posts.ID = pm4.post_id AND pm4.meta_key='_billing_state')
LEFT JOIN wp_postmeta AS pm5 ON (wp_posts.ID = pm5.post_id AND pm5.meta_key='_billing_postcode')
LEFT JOIN wp_postmeta AS pm6 ON (wp_posts.ID = pm6.post_id AND pm6.meta_key='_billing_email')
LEFT JOIN wp_postmeta AS pm7 ON (wp_posts.ID = pm7.post_id AND pm7.meta_key='_billing_phone')
LEFT JOIN wp_postmeta AS pm8 ON (wp_posts.ID = pm8.post_id AND pm8.meta_key='_billing_last_name')
LEFT JOIN wp_postmeta AS pm9 ON (wp_posts.ID = pm9.post_id AND pm8.meta_key='_billing_first_name')
LEFT JOIN wp_postmeta AS pm10 ON (wp_posts.ID = pm10.post_id AND pm10.meta_key='_shipping_first_name')
LEFT JOIN wp_postmeta AS pm11 ON (wp_posts.ID = pm11.post_id AND pm11.meta_key='_shipping_last_name')
LEFT JOIN wp_postmeta AS pm12 ON (wp_posts.ID = pm12.post_id AND pm12.meta_key='_shipping_address_1')
LEFT JOIN wp_postmeta AS pm13 ON (wp_posts.ID = pm13.post_id AND pm13.meta_key='_shipping_address_2')
LEFT JOIN wp_postmeta AS pm14 ON (wp_posts.ID = pm14.post_id AND pm14.meta_key='_shipping_city')
LEFT JOIN wp_postmeta AS pm15 ON (wp_posts.ID = pm15.post_id AND pm15.meta_key='_shipping_state')
LEFT JOIN wp_postmeta AS pm16 ON (wp_posts.ID = pm16.post_id AND pm16.meta_key='_shipping_postcode')
LEFT JOIN wp_postmeta AS pm17 ON (wp_posts.ID = pm17.post_id AND pm17.meta_key='_order_shipping')
LEFT JOIN wp_postmeta AS pm18 ON (wp_posts.ID = pm18.post_id AND pm18.meta_key='_order_total')
LEFT JOIN wp_postmeta AS pm19 ON (wp_posts.ID = pm19.post_id AND pm19.meta_key='_cart_discount')
LEFT JOIN wp_postmeta AS pm20 ON (wp_posts.ID = pm20.post_id AND pm20.meta_key='_refund_amount')
WHERE
#wp_posts.post_type = 'shop_order' AND
wp_posts.post_status = 'wc-completed' AND
wp_posts.post_date > '2016-08-01 13:13:00' AND
wp_posts.post_date < '2017-05-31 13:13:00'
GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
Thank you
Aucun commentaire:
Enregistrer un commentaire