SQL - Как мне создать представление, которое сводит и существующую таблицу - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть таблица для наших полей Dynami c в созданных пользователем формах:

Таблица отформатирована так:

ID  | FIELD NAME 
-------------------
1   | Gross Gallons

Чтобы сформировать объединения с другими таблицами, мне нужно создать представление, которое выглядит следующим образом

ID_1 
------------
Gross Gallons

Любая помощь будет оценена

Спасибо

1 Ответ

0 голосов
/ 27 февраля 2020

Это простой подход к созданию динамических c полей.

Заданная таблица:

mysql> select * from dyna_field;

+------+---------------+
| id   | field_name    |
+------+---------------+
|    1 | Gross Gallons |
|    2 | Net Gallons   |
|    3 | Total         |
+------+---------------+

Создание динамических c запросов:

select 
  group_concat(concat('(case when id = ', id, ' then field_name else "" end) as ID_', id, ' ')) into @sql_case
from dyna_field 
join(SELECT @sql_case:='') c;

set @sql_case = concat('select ', @sql_case, ', 1 as uid from dyna_field;');

prepare statement FROM @sql;

execute statement;

+---------------+-------------+-------+-----+
| ID_1          | ID_2        | ID_3  | uid |
+---------------+-------------+-------+-----+
| Gross Gallons |             |       |   1 |
|               | Net Gallons |       |   1 |
|               |             | Total |   1 |
+---------------+-------------+-------+-----+
...