PDA

Zobacz pełną wersję : Skopiowanie wybranych kolumn z jednej tabeli do drugiej



nelik1987
14-09-2012, 23:18
Witam. Przechodzę własnie z joomla 1.5 na joomla 2.5. Nie jestem zbyt obeznany w bazach danych (niestety) i mam problem z przekopiowaniem danych dotyczących artykułów. Część rzeczy udało mi się przekopiować tzn na przykład komentarze do artykułów czy na przykład wartości ocen artykułów nie było to trudne bo zarówno w wersji 1.5 jak i 2.5 te tabele są identyczne. Niestety tabel _content jest inna w obu wersjach. Podczas próby skopiowania otrzymuję taki oto komunikat.


INSERT (http://forum.joomla.pl/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Fref man%2F5.5%2Fen%2Finsert.html&token=08df5337cb043083474c733f056a386b)INTO`nelik1 98_mikro`.`j25_content`
SELECT (http://forum.joomla.pl/url.php?url=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Fref man%2F5.5%2Fen%2Fselect.html&token=08df5337cb043083474c733f056a386b)*
FROM`nelik198_mikro`.`jos_content`


MySQL zwrócił komunikat:

#1136 - Column count doesn't match value count at row 1

Głównie zależało mi na kolumnie hits w której mamy licznik odsłon. Migrację przeprowadziłem jakiś miesiąc temu ale jeszcze nie uruchomiłem nowej strony także nabiło się sporo odsłon i chciał bym je przywrócić do nowej strony. Nie chce jeszcze raz przeprowadzać migracji za pomocą jupgrade ponieważ ustawiłem sobie prawie szystkie dodatki i moduły i nie chce tego stracić. Nie wiem jak zbudowac zapytanie by kopiować pomiędzy tabelami (starą i nową) poszczególne kolumny o tych samych nazwach

deviapps
15-09-2012, 00:03
jak masz już skopiowane treści, to wystarczy


update `j25_content` n set hits = (select hits from `jos_content` o where o.id=n.id)

jak masz inne id, to zamiast tego może być np alias

nelik1987
15-09-2012, 08:20
Dziękuję bardzo o to mi właśnie chodziło. Niestety muszę się jeszcze dużo naucz na temat SQL

- - - Updated - - -

Czy należy jeszcze o jakiś wpisać pamiętać o ile starą stronę migrowano przej jupgrade ale tak czy inaczej stara strona działała jeszcze koło miesiąca? Jakieś liczniki itp?