mysql - meta_value 字段的内部联接
问题描述
我想对 meta_value 字段进行内部连接。
在下面的代码中,我需要将 'enrolment' 加入到 'wp_woocommerce_order_itemmeta' (OIM) 表中,其中 oim.meta_key='enrolment_id' 和 meta_value= 'enrolment' 表中的 id 字段。
wp_woocommerce_order_itemmeta 的结构是
- ID
- 元密钥
- 元值
登记表的结构是:
- ID
- 名
- 姓
- ETC
请注意,在我的示例中,我将 OIM 表字段从行转换为列。
这是我到目前为止所拥有的:
SELECT
O.order_item_name,
MAX(CASE WHEN OIM.meta_key = 'class' THEN OIM.meta_value END) AS 'class',
MAX(CASE WHEN OIM.meta_key = 'fee-type' THEN OIM.meta_value END) AS 'fees',
MAX(CASE WHEN OIM.meta_key = 'enrolment_id' THEN OIM.meta_value END) AS 'eid'
FROM wp_woocommerce_order_items O
INNER JOIN wp_woocommerce_order_itemmeta OIM ON O.order_item_id = OIM.order_item_id
INNER JOIN enrolment E ON ...
解决方案
在ON
子句中包含元键。
...
INNER JOIN enrolment e
ON e.id = oim.meta_value
AND oim.meta_key = 'enrolment_id'
...