/ / Zaktualizuj pojedynczą tabelę za pomocą pola klucza - mysql

Zaktualizuj tabelę za pomocą pola klucza - mysql

Próbowałem wykonać następujące czynności między dwoma stołami bez powodzenia i próbuję zrobić to teraz w jednym.

Tabela lokalizacji z zamkami, miastem, stanem, nazwą (jedno z trzech pierwszych pól) i typem (miasto, stan, zip)

Próbuję utworzyć pola nadrzędne, np. Zip miałby to miasto jako rodzic

Więc chcę zrobić coś takiego

Dla każdego rekordu, w którym typem jest zip, znajdź rekord z tym samym miastem, określ, gdzie typem jest miasto, i nadaj temu identyfikatorowi identyfikator nadrzędny

Dla każdego rekordu, w którym typem jest miasto, znajdź rekord z tym samym miastem, określ stan, w którym typem jest stan, i nadaj temu identyfikatorowi identyfikator nadrzędny

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz spróbować czegoś takiego:

UPDATE temp_demo_loc AS a
INNER JOIN temp_demo_loc AS b ON a.City = b.City
SET a.ParentID = b.id
WHERE a.Type = "Zip" AND b.Type = "City";

UPDATE temp_demo_loc AS a
INNER JOIN temp_demo_loc AS b ON a.City = b.City
SET a.ParentID = b.id
WHERE a.Type = "City" AND b.Type = "State";

I zrób to samo na kolejnych poziomach.

Demo programu sqlfiddle