Tengo 2 tablas en mi base de datos.
Tabla 1
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
Tabla 2
-----------------------------------------
| gender | address | phone | birthdate |
-----------------------------------------
en la tabla # 1, la dirección de las columnas y el teléfono2 están vacíos y los valores de género y fecha de nacimiento de las columnas son los mismos que en la tabla # 2.
¿Cómo puedo leer los datos de la tabla # 2 y actualización de la dirección y phone2 en la tabla # 1 con valores de la tabla # 2 direcciones y teléfonos columnas al género y fecha de nacimiento es el mismo en cada fila?
por ejemplo: estos son algunos datos en la Tabla # 1
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
| john | doe | 12345| t@t.com| Male | | | 1980-01-01|
-------------------------------------------------------------------------
| mike | clark | 65432| x@y.com| Male | | | 1990-01-01|
-------------------------------------------------------------------------
| Sara | King | 875465| a@b.com|Female| | | 1970-01-01|
-------------------------------------------------------------------------
y aquí hay algunos datos en la tabla # 2
-----------------------------------------
| gender | address | phone | birthdate |
-----------------------------------------
| Male | 1704test|0457852|1980-01-01 |
-----------------------------------------
| Female | 1705abcs|0986532|1970-01-01 |
-----------------------------------------
| Male | 1602cyzd|0326589|1990-01-01 |
-----------------------------------------
Quiero actualizar la tabla n. ° 1 con los datos de la tabla n. ° 2 y verificar el género y la fecha de nacimiento y hacer que la tabla n. ° 1 me guste
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
| john | doe | 12345| t@t.com| Male |0457852 |1704test | 1980-01-01|
-------------------------------------------------------------------------
| mike | clark | 65432| x@y.com| Male |0326589 |1602cyzd| 1990-01-01|
-------------------------------------------------------------------------
| Sara | King | 875465| a@b.com|Female |0986532 |1705abcs| 1970-01-01|
-------------------------------------------------------------------------
¿Cómo puedo hacer esto?
sql-server
t-sql
sql-server-2014
join
update
John Doe
fuente
fuente
UNIQUE
restriccióntable2 (gender, birthdate)
, debe agregar esa información en la pregunta.Respuestas:
Hay bastantes maneras de lograr los resultados deseados.
Métodos indeterministas
(en el caso de que muchas filas en la tabla 2 coincidan con una en la tabla 1)
O una forma un poco más concisa
O con un CTE
Métodos deterministas
MERGE
arrojaría un error en lugar de aceptar resultados no deterministasO puede elegir un registro específico si hay más de una coincidencia
Con
APPLY
.. o un CTE
fuente
tgt_address
ytgt_phone
son alias para las columnas en#Table1
, por lo que ese es el objetivo de la actualización.fuente