Mysql 2 кросс-таблицы, не с 1 = 1 отношение в одном представлении - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть таблица MySQL с четырьмя столбцами subfield_id, submission_id, field_id, value

Я сделал два представления:

1.

SELECT submission_id, 
       MAX( CASE field_id WHEN '1' THEN value ELSE '0' END ) Usernumber,
       MAX( CASE field_id WHEN '2' THEN value ELSE '0' END ) Company, 
       MAX( CASE field_id WHEN '3' THEN value ELSE '0' END ) Zipp, 
FROM table
GROUP BY submission_id

Результирующие столбцы таблицы: Submission_id, Usernumber, Company, Zipp

2.

SELECT submission_id, 
       MAX( CASE field_id WHEN '4' THEN value ELSE '0' END ) Usernumber1, 
       MAX( CASE field_id WHEN '5' THEN value ELSE '0' END ) Partnernumber 
FROM table 
GROUP BY submission_id

Результирующие столбцы таблицы: Submission_id, Usernumber1, Partnernumber

Usernumber и Usernumber1 - это одно и то же число

Как мне сделатьпредставление со следующими столбцами?

Usernumber, Company,  Zipp, Partnernumber

1 Ответ

0 голосов
/ 23 сентября 2018

Просто напишите это в одном запросе:

SELECT submission_id, 
       MAX( CASE field_id WHEN '1' THEN value ELSE '0' END ) as Usernumber,
       MAX( CASE field_id WHEN '2' THEN value ELSE '0' END ) as Company, 
       MAX( CASE field_id WHEN '3' THEN value ELSE '0' END ) as Zipp, 
       MAX( CASE field_id WHEN '5' THEN value ELSE '0' END ) as Partnernumber 
FROM table
GROUP BY submission_id;

Представления не помогут вам в этом запросе.

РЕДАКТИРОВАТЬ:

На основе вашегокомментарий:

select *
from view1 v1 join
     view2 v2
     using (Usernumber);
...