Actualización de SQL de una tabla a otra según una coincidencia de ID
Tengo una base de datos con account numbers
y card numbers
. Los relaciono con un archivo con update
cualquier número de tarjeta y el número de cuenta, de modo que solo trabajo con números de cuenta.
Creé una vista que vincula la tabla a la base de datos de cuenta/tarjeta para devolver el Table ID
número de cuenta relacionado, y ahora necesito actualizar aquellos registros donde la identificación coincide con el número de cuenta.
Esta es la Sales_Import
tabla donde el account number
campo debe actualizarse:
ID principal | Número de cuenta |
---|---|
147 | 5807811235 |
150 | 5807811326 |
185 | 7006100100007267039 |
Y esta es la RetrieveAccountNumber
tabla desde donde necesito actualizar:
ID principal | Número de cuenta |
---|---|
147 | 7006100100007266957 |
150 | 7006100100007267039 |
Probé lo siguiente, pero no tuve suerte hasta ahora:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Actualiza los números de tarjeta a números de cuenta, pero los números de cuenta se reemplazan porNULL
Creo que UPDATE FROM
con una JOIN
ayuda:
Microsoft SQL
UPDATE
Sales_Import
SET
Sales_Import.AccountNumber = RAN.AccountNumber
FROM
Sales_Import SI
INNER JOIN
RetrieveAccountNumber RAN
ON
SI.LeadID = RAN.LeadID;
MySQL y MariaDB
UPDATE
Sales_Import SI,
RetrieveAccountNumber RAN
SET
SI.AccountNumber = RAN.AccountNumber
WHERE
SI.LeadID = RAN.LeadID;
La forma sencilla de copiar el contenido de una tabla a otra es la siguiente:
UPDATE table2
SET table2.col1 = table1.col1,
table2.col2 = table1.col2,
...
FROM table1, table2
WHERE table1.memberid = table2.memberid
También puede agregar la condición para copiar los datos particulares.