Mysql объединить несколько записей с одинаковым идентификатором, игнорируя пустые поля - PullRequest
0 голосов
/ 04 октября 2018

Я хочу объединить несколько записей с одним и тем же идентификатором в одну запись для каждого идентификатора.Мне пришлось использовать сводные таблицы для получения необходимых данных из нескольких других таблиц и во временную таблицу, которая выглядит примерно так:

ID |Data1|Data2|Data3|Data4
1   asdf  NULL  NULL  NULL
1   NULL  blah  NULL  NULL
1   NULL  NULL  this  NULL
1   NULL  NULL  NULL  data
2   NULL  funk  NULL  NULL
2   NULL  NULL  jazz  NULL

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

ID |Data1|Data2|Data3|Data4
1   asdf  blah  this  data
2   NULL  funk  jazz  NULL

Я просмотрел множество других подобных вопросов здесь и на других веб-сайтах, которые, кажется, имеют дело с числовыми значениями в таких полях, каккак этот ( Объединить несколько строк с одинаковым идентификатором в одну строку ).Они не имеют желаемого эффекта.Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Если для каждого столбца есть только 1 значение (как в вашем примере данных), вы можете использовать методы агрегирования:

SELECT t.id ,
       max(t.data1) as data1,
       max(t.data2) as data2,
       max(t.data3) as data3,
       max(t.data3) as data3
FROM YourTable t
GROUP BY t.id
0 голосов
/ 04 октября 2018

Использование MAX() с GROUP BY Предложение:

SELECT t.ID, 
       MAX(t.Data1), 
       MAX(t.Data2), 
       MAX(t.Data3), 
       MAX(t.Data4) 
FROM table AS t
GROUP BY t.ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...