我想比较3个SQL Server表

时间:2017-04-05 23:11:10

标签: sql sql-server-2014

我创建了三个表Table1,Table2和Table3。

  • 表1 中,我有3列CodeName& Cityid
  • 表2 中,我有2列Code& Name
  • 表3 中,我有2列Code& Cityid

首先,我必须将Table1.NameTable2.Name进行比较。

如果该条件满足,请Table2.Code并将其与Table3.Code进行比较,然后选择Table3.Cityid并将其与Table1.Cityid进行比较。

如果满足所有条件,请将Table2.Code插入Table1.Code

请任何人帮我写信查询我是新的SQL。

提前致谢。

请参考输入样本数据

表1 | name | code | cityid | | ------------- | --------- | ------ | | Ersan | NULL | 1 | |普罗夫迪夫|空| 3 |

表2 |名称|代码| | ------------- | --------- | | Ersan | 401065 | | Ersan | 401065 | |普罗夫迪夫| 143967 | |普罗夫迪夫| 143967 | |普罗夫迪夫| 143967 |

表3 | cityid |代码| | --------- | --------- | | 1 | 401065 | | 3 | 143967 |

和输出将是这样的:

表1 | name | code | cityid | | ------------- | --------- | ------ | | Ersan | 401065 | 1 | |普罗夫迪夫| 143967 | 3 |

1 个答案:

答案 0 :(得分:0)

看我已经创建了如下所示的样本数据

table__1将是

code    name    city
0001    a        p
002     b       c1
003     c       c2
004     d       c4
005     e       c5
006     f       c6
007     g       c7
008     h       c8
009     i       c9

table__2将是

   code name    city
    0001    a       p
    002     b      c1
    003     c      c2
    004     d      c4
    005     e      c5
    006     f      c6
    007 wrongname  c7
  wrongcode h      c8
    009     i   wrongcity

现在查询插入记录将是

insert into table__3
select table__1.code,table__1.name,table__1.city 
from table__2 inner join table__1 
on table__2.name=table__1.name and table__2.code=table__1.code and table__2.city=table__1.city

如果在下面有任何问题评论...... 祝你好运......