Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kopiowanie dwóch komórek z różnych tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
siemen
Witam

Mam zagwozdkę sciana.gif tego typu, chciałbym z jednej tabeli przekopiować wartości `dial_code` do drugiej
względem name`a

A dokładnie z tabeli `1country_code` przekopiować `dial_code` do `dial_code` drugiej tabeli `2country_all`

Poniżej zamieszczam tabele z przykładowym wypełnieniem.

CREATE TABLE `1country_code` (
`id` int(3) unsigned NOT NULL auto_increment primary key,
`name` varchar(255) default NULL,
`dial_code` int(5) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

REPLACE INTO `1country_code` (`name`,`dial_code`) VALUES
('Albania','355'),
('Germany','49'),
('Japan','81'),
('Norway','47'),
('Romania','40'),
('Russia','7'),
('Spain','34'),
('USA','1');


CREATE TABLE `2country_all` (
`id` int(3) unsigned NOT NULL auto_increment primary key,
`country_name` varchar(510) default NULL,
`code` varchar(5) default NULL,
`dial_code` int(5) default NULL,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

REPLACE INTO `2country_all` (`country_name`,`code`) VALUES
('Afghanistan','AF'),
('Albania','AL'),
('Algeria','DZ'),
('Cameroon','CM'),
('Germany','DE'),
('Norway','NO'),
('Romania','RO'),
('Russia','RU'),
('Spain','ES'),
('USA','US');

takie zapytanie udało mi się zbudować, które wyświetla potrzebne dane, nie umiem ich jedynie przekopiować.

select
c2.name, c2.dial_code,
c3.country_name, c3.dial_code as dial_code3
from
1country_code c2
left join
2country_all c3
on
c3.country_name=c2.name
thek
To już masz prawie wszystko smile.gif Użyj UPDATE, gdzie jako tabelę używasz obu JOINowanych jak tutaj pokazałeś w SELECT. Jako cel pokaż właściwą komórkę w jednej tabeli (2country_all.dial_code), a jako źródło danych komórkę z drugiej tabeli zawierającą kod(1country_code.dial_code). Taka składnia w MySQL jest dozwolona smile.gif
siemen
Cytat(thek @ 24.09.2009, 07:03:19 ) *
To już masz prawie wszystko smile.gif Użyj UPDATE, gdzie jako tabelę używasz obu JOINowanych jak tutaj pokazałeś w SELECT. Jako cel pokaż właściwą komórkę w jednej tabeli (2country_all.dial_code), a jako źródło danych komórkę z drugiej tabeli zawierającą kod(1country_code.dial_code). Taka składnia w MySQL jest dozwolona smile.gif



hm zrobilem cos takiego

update
c2.name, c2.dial_code,
c3.country_name, c3.dial_code as dial_code3
from
1country_code c2
left join
2country_all c3
set
2country_all.dial_code=1country_code.dial_code

no ale nie bardzo chce działać blinksmiley.gif . Rozumiem ze mam błąd w składni.
Czy moge prosić o pomoc w poprawnym zapisie tego zapytania.
thek
Jaka jest składnia UPDATE?
  1. UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value

Więc stosujmy się do niej.
  1. UPDATE 1country_code c2 LEFT JOIN 2country_all c3 ON c3.country_name=c2.name SET c3.dial_code = c2.dial_code WHERE (tu daj jakie chcesz lub wywal WHERE całkiem jeśli ma zrobić dla całej tabeli).
I teraz popatrz czy to jest zgodne z tym co napisałem słownie. Bo na bank działa.
siemen
Cytat(thek @ 24.09.2009, 18:48:47 ) *
Jaka jest składnia UPDATE?
  1. UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value

Więc stosujmy się do niej.
  1. UPDATE 1country_code c2 LEFT JOIN 2country_all c3 ON c3.country_name=c2.name SET c3.dial_code = c2.dial_code WHERE (tu daj jakie chcesz lub wywal WHERE całkiem jeśli ma zrobić dla całej tabeli).
I teraz popatrz czy to jest zgodne z tym co napisałem słownie. Bo na bank działa.



dziękuje za pomoc, bardzo mi to pomogło
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.