Внутреннее объединение в поле meta_value - PullRequest
0 голосов
/ 30 марта 2019

Я хотел бы выполнить внутреннее соединение в поле meta_value.

В следующем коде мне нужно присоединить 'enrollment' к таблице 'wp_woocommerce_order_itemmeta' (OIM), где oim.meta_key = 'enrolment_id 'и meta_value = поле id в таблице' enrollment '.

Структура wp_woocommerce_order_itemmeta:

  • id
  • meta_key
  • meta_value

Структура таблицы регистрации:

  • id
  • имя
  • фамилия
  • и т. д.

Обратите внимание, что в моем примере я перемещаю поля таблицы 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 ...

1 Ответ

1 голос
/ 30 марта 2019

Включить мета-ключ в предложение ON.

...
INNER JOIN enrolment e
           ON e.id = oim.meta_value
              AND oim.meta_key = 'enrolment_id'
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...