我有一個簡單的SELECT語句如下:MySQL Select Query - 使用案例時還是加入?
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 pm.meta_key = '_billing_first_name' and p.ID = pm.post_id
THEN pm.meta_value END) as _billing_first_name,
max(CASE WHEN pm.meta_key = '_billing_last_name' and p.ID = pm.post_id
THEN pm.meta_value END) as _billing_last_name,
max(CASE WHEN pm.meta_key = '_order_total' and p.ID = pm.post_id
THEN pm.meta_value END) as order_total,
max(CASE WHEN pm.meta_key = '_order_tax' and p.ID = pm.post_id
THEN pm.meta_value END) as order_tax,
max(CASE WHEN pm.meta_key = '_paid_date' and p.ID = pm.post_id
THEN pm.meta_value END) as paid_date
from wp_posts as p,
wp_postmeta as pm
where post_type = 'shop_order'
and p.ID = pm.post_id
and
and post_status = 'wc-completed'
group by p.ID
它已經建議我應該使用JOIN語法 - 我認爲CASE WHEN代替。我已經開始研究一個JOIN版本,但目前爲止似乎並沒有那麼冗長 - 只是想知道這是否是最佳實踐並且更有效地處理等等?
我是新來SQL和學習,因爲我很想看到如何使用JOIN重寫這些示例,因爲我可能會以這種錯誤的方式進行。
您正在調整數據。爲了旋轉'條件聚合'(你的當前方法)是相當合理的。不知道是誰建議你使用'Join'來轉發數據。只有我發現可以改進你的查詢是使用'INNER JOIN'語法來加入兩個表,而不是使用'逗號分隔連接' –
你想做什麼? –