/ / Заповнення даних за допомогою mysql - mysql, sql, join, subquery

Заповнення даних за допомогою mysql - mysql, sql, join, підзапит

Привіт, у мене є таблиця, яка виглядає приблизно так:

Date ID Value
1/1/2011 id1 10
1/2/2011 id1 NULL
1/3/2011 id1 20
1/1/2011 id2 20
1/3/2011 id2 NULL
1/4/2011 id2 30

Моє завдання полягає в тому, щоб заповнити значення для кожного idі дату, доки не стане відомо нове значення. Наприклад, я хотів би вставити значення 10 на 1/2/2011 для id1 і значення 20 на 1/3/2011 для id2. Я використовую mysql. Будь-яка допомога в цьому буде дуже вдячна.

Відповіді:

0 для відповіді № 1

У mysql, насправді немає супер-ефективного способу зробити це (що я можу придумати), але це може бути виконано за допомогою корельованого підзапиту:

UPDATE table
SET value = (SELECT value
FROM Table AS T1
WHERE T1.ID = table.ID
and t1.DATE <= table.Date
LIMIT 1)
WHERE table.Value IS NULL;

Це припускає, що я правильно інтерпретую логіку. Дайте мені знати, якщо це правильна ідея.