Eu tenho 2 tabelas no meu banco de dados.
Tabela 1
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
Mesa 2
-----------------------------------------
| gender | address | phone | birthdate |
-----------------------------------------
na tabela #1 as colunas address e phone2 estão vazias e os valores das colunas gender e birthdate são os mesmos da tabela #2.
Como posso ler dados da tabela nº 2 e atualizar endereço e telefone2 na tabela nº 1 com valores da tabela nº 2 endereço e colunas de telefone quando sexo e data de nascimento são os mesmos em cada linha?
por exemplo: estes são alguns dados na Tabela #1
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
| john | doe | 12345| [email protected]| Male | | | 1980-01-01|
-------------------------------------------------------------------------
| mike | clark | 65432| [email protected]| Male | | | 1990-01-01|
-------------------------------------------------------------------------
| Sara | King | 875465| [email protected]|Female| | | 1970-01-01|
-------------------------------------------------------------------------
e aqui estão alguns dados na tabela #2
-----------------------------------------
| gender | address | phone | birthdate |
-----------------------------------------
| Male | 1704test|0457852|1980-01-01 |
-----------------------------------------
| Female | 1705abcs|0986532|1970-01-01 |
-----------------------------------------
| Male | 1602cyzd|0326589|1990-01-01 |
-----------------------------------------
Eu quero atualizar a tabela #1 com dados da tabela #2 e verificar sexo e data de nascimento e fazer a tabela #1 como
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
| john | doe | 12345| [email protected]| Male |0457852 |1704test | 1980-01-01|
-------------------------------------------------------------------------
| mike | clark | 65432| [email protected]| Male |0326589 |1602cyzd| 1990-01-01|
-------------------------------------------------------------------------
| Sara | King | 875465| [email protected]|Female |0986532 |1705abcs| 1970-01-01|
-------------------------------------------------------------------------
Como posso fazer isso?
Existem algumas maneiras de alcançar os resultados desejados.
Métodos não determinísticos
(no caso de muitas linhas na tabela 2 corresponderem a uma na tabela 1)
Ou uma forma um pouco mais concisa
Ou com um CTE
Métodos determinísticos
MERGE
lançaria um erro em vez de aceitar resultados não determinísticosOu você pode escolher um registro específico se houver mais de uma correspondência
Com
APPLY
.. Ou um CTE