SELECT o.id, o.uniqprodukt, d.id_fk FROM produkty o INNER JOIN produkty_dane d ON o.uniqprodukt= d.uniqprodukt WHERE o.id>26452
W tabeli produkty mam jak sama nazwa wskazuje produkty, każdy produkt ma unikalne ID (varchar) oraz zwykłe inkrementowane ID (INT). W tabeli produkt dane znajdują się dodatkowe dane to produktu z tabeli "produkty".
Łączyłem tabele kolumną uniqprodukt i niestety takie rozwiązanie nie było zbyt dobre chciałbym łączyć kolumny za pomocą zwykłego ID(INT), tak zapytania trwają o wiele szybciej.
Chciałbym powyższe zapytanie przerobić na UPDATE. Po prostu ustawić wartość "o.id" w kolumnie "d.id_fk". Wierszy jest ok 600tys dlatego przez php obliczyłem ze zajęłoby to ok 8dni

PS. ten warunek na końcu to numer ile udało mi się wierszy przerobić do tej pory (26/600 tys

Żeby lepiej przedstawić sytuacje zrobiłem screena:

Nie uchwyciłem sytuacji gdy danych do produktu jest więcej niż 1 ale to tylko będą kilka razy te same wiersze więc to niczego nie zmienia.
ROZWIĄZANIE
Jak zwykle... siedzę parę godzin żeby rozwiązać samemu problem, a olśnienie przychodzi dopiero jak napisze na forum

Popełniłem taki skrypt php aby rozwiązać ten problem:
<?php include('config.php'); // Plik z połączeniem do bazy $pyta = mysql_query("SELECT o.id as ida,d.id as idb, o.idprodukt, idprodukt_fk FROM produkty o INNER JOIN produkty_dane d ON o.idprodukt= d.idprodukt WHERE"); $id = $rek['ida']; $idb = $rek['idb']; //Takie własne obliczenia aby zobaczyć ile się wykonało $per = ($id/388621)*100; //Wypluwamy wynik po każdym przejściu pętli while } ?>
Dodam, że pierwsze zapytanie zawierało ok 388 tys wierszy czyli skrypt miał do wykonania właśnie tyle zapytań UPDATE, całość trwała ok 2min

Uczcie się na moim błędzie i nie używajcie do INNER JOIN zmiennych znakowych jako łącznika tylko zwykłe INTy

