W MySQL, Jak skopiować POLA ze wszystkimi rekordami z TABELA1 do TABELA2, który odpowiada kluczowi podstawowemu, tj: nr PRACOWNIKA?MYSQL, Skopiuj wybrane pola z jednej tabeli do drugiej
Odpowiedz
Spróbuj
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
spowoduje to wstawienie wszystkich danych z tabeli1 do tabeli2. –
Biorąc pod uwagę, że jest to zaakceptowana odpowiedź, zakładam, że PO opublikował nieprawidłowe pytanie. – swasheck
Jeśli masz na myśli chcesz kolumnie aktualizacja jednym stole Korzystanie kolumny innej tabeli, a następnie Oto kilka opcji:
JOIN:
UPDATE table1 AS t1 INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
Alternatywnie może to być lewostronne połączenie:
UPDATE table1 AS t1 LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
, który w zasadzie opróżniłby (ustawił na wartość NULL) wartości, w których nie wystąpiło dopasowanie.
Podzapytanie:
UPDATE table1 SET SomeColumn = ( SELECT SomeColumn FROM table2 WHERE EmployeeNo = table1.EmployeeNo )
Jest to równoważne z lewej strony przyłączenia rozwiązanie # 1.
Należy zauważyć, że we wszystkich przypadkach zakłada się, że rząd w table1
może się równać nie więcej niż jeden wiersz w table2
.
Dzięki temu wypróbuję to. – ix3
Jeśli chodzi o drugą podkwerendę, widzę ten błąd: 'Nie możesz określić tabeli docelowej 'table2' dla aktualizacji w klauzuli FROM" Czy wiesz, co może to spowodować? Thx –
@SSHThis: Nie, prawdopodobnie nie możesz. I nie zrobiłem tego. I [spójrz, działa bez problemów] (http://sqlfiddle.com/#!2/f5423/1). –
Zapytanie do kopiowania danych z jednej tabeli do drugiej wynosi:
Insert into table2 (field1, field2) select field1, field2 from table1
Jeśli chcesz skopiować tylko wybrane wartości, a następnie użyć klauzuli WHERE w zapytaniu
Insert into table2 (field1, field2) select field1, field2 from table1 where field1=condition
Dzięki za pokazanie, jak przenosić więcej niż jeden naraz :) – JoshP
update
table1 t1
join table2 t2 on t2.field = t1.field
set
t1.field1 = t2.matchingfield
where
t1.whatever = t2.whatever
to właśnie rozwiązało mój 1 tydzień ból głowy. Dziękuję kumplu – bademba
tak, dziwne, każdy mówi coś innego .. To działa – brigitte18
Możesz użyć tego do skopiowania wszystkich rekordów z table1
do table2
z warunkiem.
Insert into table2 select * from table1 where field1=condition
WKŁADKA DO table_1
(column-1
, column-2
) SELECT kolumna 1, kolumna 2 od table_2;
to pytanie otrzymało już wiele odpowiedzi. proszę porównać swoją odpowiedź z pozostałymi odpowiedziami i spróbuj sprawdzić, czy dostarczysz cokolwiek ** nowego **. Jeśli tak, proszę wyjaśnić, dlaczego, ponieważ nie jest to dla mnie oczywiste –
Jakie są pola w tabelach? Czego spróbowałeś do tej pory? –
czy próbujesz wykonać instrukcję SELECT INTO? –
przykładowe dane proszę ... –