我试图弄清楚如何编写 SQL 查询中涉及 3 个表。
itemmeta
order_item_id meta_key meta_value
------------------- ------------------ -------------------
1 _subscription_test 0
1 _subscription_more 0
1 _product_id 100
2 _subscription_test 0
2 _subscription_more 0
2 _product_id 100
3 _product_id 100
order_items
order_item_id order_id
------------------- ------------------
1 200
2 201
3 202
后元*
order_id meta_key
------------------ ------------------
200 _original_order
查询应执行以下操作:
查找 itemmeta.order_item_id
Where itemmeta.meta_key LIKE '_subscription%' OR itemmeta.meta_key LIKE '_recurring%'
-> 仅使用此处的唯一值
取那些 itemmeta.order_item_id 值并匹配 order_items.order_item_id
-> return order_items.order_id取那些 order_items.order_id 并匹配到 postmeta.post_id ,其中 postmeta.meta_key 与 '_original_order' 不匹配
(丢弃存在该元键的任何 order_id)这些结果,参考 itemmeta.order_item_id 并找到 itemmeta.meta_key = '_product_id'
-> return itemmeta.meta_value
最后结果:
order_items.order_id, order_itemmeta.meta_value (_product_id)
所以在上面的表格中,这将返回 1 行:
order_id => 201
meta_value => 100
我不太确定执行此查询所需的合并和否定。将不胜感激有人可以提供的任何帮助!