insert table1 select 1,A.* from (select B.SID, B.Name, B.Tel from table1 B where Id = 2 and not exists (select 1 from table1 C where C.id = 1 and C.SID = B.SID and C.Nam e = B.Name AND C.Tel = B.tel) )A
Create Table 表 (ID Int, SID Int, Name Nvarchar(10), Tel Varchar(10)) Insert 表 Select 1, 1, N'haha', 90909 Union All Select 1, 2, N'名字2', 90909 Union All Select 1, 33, N'天使', 90909 Union All Select 2, 1, N'haha', 90909 Union All Select 2, 2, N'名字2', 90909 Union All Select 2, 3, N'名字3', 90909 Union All Select 2, 4, N'名字4', 90909 Union All Select 2, 5, N'名字5', 90909 Union All Select 2, 6, N'名字6', 90909 GO Insert 表 Select 1 As ID, SID, Name, Tel From 表 Where ID = 2Select * From 表 Order By ID GO Drop Table 表 --Result /* ID SID Name Tel 1 1 haha 90909 1 2 名字2 90909 1 33 天使 90909 1 1 haha 90909 1 2 名字2 90909 1 3 名字3 90909 1 4 名字4 90909 1 5 名字5 90909 1 6 名字6 90909 2 6 名字6 90909 2 1 haha 90909 2 2 名字2 90909 2 3 名字3 90909 2 4 名字4 90909 2 5 名字5 90909 */
也可以用關聯的方法Insert 表 Select 1 As ID, A.SID, A.Name, A.Tel From 表 A Left Join 表 B On A.SID = B.SID And B.ID = 1 Where A.ID = 2 And B.SID Is Null Select * From 表 Order By ID, SID
Create Table 表 (ID Int, SID Int, Name Nvarchar(10), Tel Varchar(10)) Insert 表 Select 1, 1, N'haha', 90909 Union All Select 1, 2, N'名字2', 90909 Union All Select 1, 33, N'天使', 90909 Union All Select 2, 1, N'haha', 90909 Union All Select 2, 2, N'名字2', 90909 Union All Select 2, 3, N'名字3', 90909 Union All Select 2, 4, N'名字4', 90909 Union All Select 2, 5, N'名字5', 90909 Union All Select 2, 6, N'名字6', 90909 GO Insert 表 Select 1 As ID, A.SID, A.Name, A.Tel From 表 A Left Join 表 B On A.SID = B.SID And B.ID = 1 Where A.ID = 2 And B.SID Is Null Select * From 表 Order By ID, SID GO Drop Table 表 --Result /* ID SID Name Tel 1 1 haha 90909 1 2 名字2 90909 1 3 名字3 90909 1 4 名字4 90909 1 5 名字5 90909 1 6 名字6 90909 1 33 天使 90909 2 1 haha 90909 2 2 名字2 90909 2 3 名字3 90909 2 4 名字4 90909 2 5 名字5 90909 2 6 名字6 90909 */
select 1,A.* from (select B.SID, B.Name, B.Tel from table1 B where Id = 2 and not exists (select 1 from table1 C where C.id = 1 and C.SID = B.SID and C.Nam e = B.Name AND C.Tel = B.tel) )A
(ID Int,
SID Int,
Name Nvarchar(10),
Tel Varchar(10))
Insert 表 Select 1, 1, N'haha', 90909
Union All Select 1, 2, N'名字2', 90909
Union All Select 1, 33, N'天使', 90909
Union All Select 2, 1, N'haha', 90909
Union All Select 2, 2, N'名字2', 90909
Union All Select 2, 3, N'名字3', 90909
Union All Select 2, 4, N'名字4', 90909
Union All Select 2, 5, N'名字5', 90909
Union All Select 2, 6, N'名字6', 90909
GO
Insert 表 Select 1 As ID, SID, Name, Tel From 表 Where ID = 2Select * From 表 Order By ID
GO
Drop Table 表
--Result
/*
ID SID Name Tel
1 1 haha 90909
1 2 名字2 90909
1 33 天使 90909
1 1 haha 90909
1 2 名字2 90909
1 3 名字3 90909
1 4 名字4 90909
1 5 名字5 90909
1 6 名字6 90909
2 6 名字6 90909
2 1 haha 90909
2 2 名字2 90909
2 3 名字3 90909
2 4 名字4 90909
2 5 名字5 90909
*/
ID SID Name Tel
-----------------------
1 1 haha 90909
1 2 名字2 90909
1 33 天使 90909
1 3 名字3 90909
1 4 名字4 90909
1 5 名字5 90909
1 6 名字6 90909
2 1 haha 90909
2 2 名字2 90909
2 3 名字3 90909
2 4 名字4 90909
2 5 名字5 90909
2 6 名字6 90909
-----------
你應該理解錯了“我想吧ID为1 的用户包含的信息更新一下,就是将id为2用户里所没有的信息添加到自己的信息里,自己的东西不动,”說了“自己的东西不动”,只是將2的數據COPY一份過來即可。
-----------------------
1 1 haha 90909
1 2 名字2 90909
1 33 天使 90909
1 3 名字3 90909
1 4 名字4 90909
1 5 名字5 90909
1 6 名字6 90909
2 1 haha 90909
2 2 名字2 90909
2 3 名字3 90909
2 4 名字4 90909
2 5 名字5 90909
2 6 名字6 90909
----
这个才是正确的
(ID Int,
SID Int,
Name Nvarchar(10),
Tel Varchar(10))
Insert 表 Select 1, 1, N'haha', 90909
Union All Select 1, 2, N'名字2', 90909
Union All Select 1, 33, N'天使', 90909
Union All Select 2, 1, N'haha', 90909
Union All Select 2, 2, N'名字2', 90909
Union All Select 2, 3, N'名字3', 90909
Union All Select 2, 4, N'名字4', 90909
Union All Select 2, 5, N'名字5', 90909
Union All Select 2, 6, N'名字6', 90909
GO
Insert 表 Select 1 As ID, A.SID, A.Name, A.Tel From 表 A Left Join 表 B On A.SID = B.SID And B.ID = 1 Where A.ID = 2 And B.SID Is Null Select * From 表 Order By ID, SID
GO
Drop Table 表
--Result
/*
ID SID Name Tel
1 1 haha 90909
1 2 名字2 90909
1 3 名字3 90909
1 4 名字4 90909
1 5 名字5 90909
1 6 名字6 90909
1 33 天使 90909
2 1 haha 90909
2 2 名字2 90909
2 3 名字3 90909
2 4 名字4 90909
2 5 名字5 90909
2 6 名字6 90909
*/