I have 2 tables made by contact form in Wordpress. I use CFDB-plugin(https://cfdbplugin.com/) to save and view forms. Cfdb saves everything in one cf7dbplugin_submits-table but in Wordpress they appear as normal tables. I'm trying to left join pivoted tables on 'id' but i'm stuck.
Table in MySQL:
wp_6_cf7dbplugin_submits
submit_time | form_name | field_name | field_value | field_order
---------------------------------------------------------------------
1650634288.1320 | Table1 | name | Name1 | 0
1650634288.1320 | Table1 | id | 01 | 1
1650963344.4858 | Table2 | id | 01 | 0
1650963344.4858 | Table2 | hours | 10 | 1
1650963344.4858 | Table2 | date | 26.4.2022 | 2
and so on...
View in Wordpress CFDB:
Table1
id | name |
---------------------
01 | Name1 |
02 | Name2 |
03 | Name3 |
View in Wordpress CFDB:
Table2
id | hours | date |
-----------------------------
01 | 10 | 26.4.2022 |
02 | 5 | 22.4.2022 |
04 | 20 | null |
Joined result should be:
id | name | hours | date
-------------------------------------
01 | Name1 | 10 | 26.4.2022
02 | Name2 | 5 | 22.4.2022
03 | Name3 | null | null
04 | null | 20 | null
This doesn't work:
SELECT
MAX(IF(field_name='name', field_value, NULL )) AS name,
MAX(IF(field_name='id', field_value, NULL)) AS id
FROM wp_6_cf7dbplugin_submits
LEFT JOIN
(SELECT
MAX(IF(field_name='hours', field_value, NULL )) AS hours,
MAX(IF(field_name='id', field_value, NULL)) AS id,
MAX(IF(field_name='date', field_value, NULL)) AS date
FROM wp_6_cf7dbplugin_submits
WHERE form_name = 'Table2'
) AS Table1
ON Table1.id = Table2.id
WHERE form_name = 'Table1';