In MySQL, come faccio a copiare un campo con tutti i record da TABELLA1 a TABELLA2 che corrisponde a una chiave primaria, ad es .: numero DIPENDENTE?MYSQL, copia i campi selezionati da una tabella a un'altra
risposta
Prova questo
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
questo inserirà tutti i dati da tabella1 a tabella2. –
Dato che questa è la risposta accettata, suppongo che l'OP abbia postato la domanda sbagliata. – swasheck
Se vuoi dire che si desidera colonna aggiornamento propria tabella utilizzando la colonna di un'altra tabella, poi qui ci sono alcune opzioni:
Un join:
UPDATE table1 AS t1 INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
In alternativa potrebbe essere un join di sinistra:
UPDATE table1 AS t1 LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
che sostanzialmente svuota (imposta su NULL) i valori in cui non si è verificata alcuna corrispondenza.
Una subquery:
UPDATE table1 SET SomeColumn = ( SELECT SomeColumn FROM table2 WHERE EmployeeNo = table1.EmployeeNo )
Ciò equivale a sinistra unirsi soluzione in # 1.
noti che in tutti i casi si suppone che una riga in table1
può corrispondere più di una riga nella table2
.
Grazie, ci provo. – ix3
Per quanto riguarda la seconda sottoquery, vedo questo errore: 'Non è possibile specificare la tabella di destinazione 'table2' per l'aggiornamento nella clausola FROM' sai cosa potrebbe causare questo? Thx –
@SSHThis: No, probabilmente non puoi. E non l'ho fatto. E [guarda, funziona senza problemi] (http://sqlfiddle.com/#!2/f5423/1). –
La query per copiare i dati da una tabella ad un altro è:
Insert into table2 (field1, field2) select field1, field2 from table1
Se si desidera copiare solo valori selezionati, quindi utilizzare clausola where nella query
Insert into table2 (field1, field2) select field1, field2 from table1 where field1=condition
Grazie per aver mostrato come spostare più di uno alla volta :) – JoshP
update
table1 t1
join table2 t2 on t2.field = t1.field
set
t1.field1 = t2.matchingfield
where
t1.whatever = t2.whatever
questo ha appena risolto il mio mal di testa di 1 settimana. Grazie amico – bademba
sì, ognuno dice qualcosa di diverso .. Questo funziona – brigitte18
È possibile utilizzare questo per copiare tutti i record da table1
a table2
con una condizione.
Insert into table2 select * from table1 where field1=condition
INSERTO in table_1
(column-1
, column-2
) SELEZIONA colonna 1, colonna 2-DA table_2;
questa domanda ha ricevuto un sacco di risposte già. confronta la tua risposta con le altre risposte e prova a vedere se la tua fornisce qualcosa ** nuovo **. Se è così, spiegami perché, perché non è ovvio per me –
Quali sono i campi nelle tabelle? Cosa hai provato fino ad ora? –
stai provando a fare una dichiarazione SELECT INTO? Dati campione –
per favore ... –