Update danych w kolumnie

0

Witam,
Powiedzmy, że mam tabelę z kolumnami (z czego dwie poniżej):
KOL1 | KOL2


F001 | AAA
F001 |
F002 | BBB
F002 |
F002 |

i chcę uzupełnić dane do postaci

KOL1 | KOL2


F001 | AAA
F001 | AAA
F002 | BBB
F002 | BBB
F002 | BBB

jak można to zrobić w miarę wydajnie w SQL? Wszystko co mi przychodzi do głowy trwa zbyt długo :) - tabelka jest dość duża.

Pozdrawiam, Jakub.

0

update tabela set KOL2 = 'BBB' where KOL1 = 'F002';

0

Jaki silnik (na MySQL-u prawie wszystko przy dużej ilości będzie trwało długo)?
Może być tak:

UPDATE tabela JOIN (SELECT KOL1, KOL2 FROM tabela WHERE KOL2 IS NOT NULL GROUP BY 1,2) x ON tabela.KOL1=x.KOL1 SET tabela.KOL2=x.KOL2

Ale to na MySQL nie pójdzie - będziesz miał err1093 (o ile dobrze pamietam). Dla MySQL to podzapytanie musisz wrzucic do nowej tabelki i z nia polaczyć. Najlepiej wcześniej dodać do niej index na KOL1

0
UPDATE t
SET KOL2 = t2.KOL2
FROM T t
JOIN T t2 ON t.KOL1=t2.KOL1 AND t.KOL2 IS NULL AND t2.KOL2 IS NOT NULL

1 użytkowników online, w tym zalogowanych: 0, gości: 1