Saya memiliki 2 tabel di database saya.
Tabel 1
-------------------------------------------------------------------------
| name | family | phone | email | gender | phone2 | address | birthdate |
-------------------------------------------------------------------------
Meja 2
-----------------------------------------
| gender | address | phone | birthdate |
-----------------------------------------
pada tabel # 1 kolom alamat dan phone2 kosong dan kolom gender dan tanggal lahir sama dengan tabel # 2.
Bagaimana saya bisa membaca data dari tabel # 2 dan memperbarui alamat dan phone2 dalam tabel # 1 dengan nilai dari tabel # 2 alamat dan kolom telepon ketika jenis kelamin dan tanggal lahir sama di setiap baris?
misalnya: ini adalah beberapa data dalam Tabel # 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|
-------------------------------------------------------------------------
dan berikut adalah beberapa data dalam tabel # 2
-----------------------------------------
| gender | address | phone | birthdate |
-----------------------------------------
| Male | 1704test|0457852|1980-01-01 |
-----------------------------------------
| Female | 1705abcs|0986532|1970-01-01 |
-----------------------------------------
| Male | 1602cyzd|0326589|1990-01-01 |
-----------------------------------------
Saya ingin memperbarui tabel # 1 dengan data dari tabel # 2 dan memeriksa jenis kelamin dan tanggal lahir dan membuat tabel # 1 seperti
-------------------------------------------------------------------------
| 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|
-------------------------------------------------------------------------
Bagaimana saya bisa melakukan ini?
sql-server
t-sql
sql-server-2014
join
update
John Doe
sumber
sumber
UNIQUE
kendala padatable2 (gender, birthdate)
, Anda harus menambahkan info itu dalam pertanyaan.Jawaban:
Ada beberapa cara untuk mencapai hasil yang Anda inginkan.
Metode yang tidak ditentukan
(dalam hal banyak baris dalam tabel 2 cocok satu dalam tabel 1)
Atau bentuk yang sedikit lebih ringkas
Atau dengan CTE
Metode deterministik
MERGE
akan melempar kesalahan daripada menerima hasil non deterministikAtau Anda dapat memilih catatan tertentu jika ada lebih dari satu pertandingan
Dengan
APPLY
.. Atau CTE
sumber
tgt_address
dantgt_phone
alias untuk kolom di#Table1
- sehingga merupakan target untuk pembaruan.sumber