复习sql,真应了那句话,做什么忘什么。
两张表:
表table1,有Id,areaName,areaGuid。Id为主键。
表table2,有areaName,Id1,Id2。
按照表1中areaName查表2中areaName字段相同的记录,然后把Id1填入表1中的areaGuid中。表2记录的areaName有重复,但areaId1,Id2不同。
1、可以用左连接,连接表1和表2.根据左连接的定义,一切Name以表1为准,表2中不同则舍去,但如果表2中Name相同的有多条,则表1也相对应重复自己为多条。
所以先要把表2中重复的去掉,否则表1就有可能增长数据个数。
忘了怎么查询表2中相同数据,所以只好用笨办法,幸亏知道有那些数据重复。把它们找出来插入新表repeat
INSERT INTO Table_repeat
SELECT Id1, Name, Id2
FROM Table_2
WHERE (Name = '成都') OR
(Name = '自贡') OR
(Name = '攀枝花') OR
然后删除。
DELETE FROM Table_2
WHERE (Name = '成都') OR
(Name = '自贡') OR
(Name = '攀枝花')
确保表2中数据唯一后。用表1左连接表2.并把所需的列插入新表result_1
INSERT INTO result_1
SELECT Table_1.areaId, Table_1.areaName, Table_1.parentAreaId AS Expr1, Table_2.Id1
FROM Table_1 LEFT OUTER JOIN
Table_2 ON Table_1.areaName = Table_2.Name
注意看是否条目增加了。否则表2中重复条目还有没有找出来的。
还有一个命令看,是否数据都是唯一SELECT DISTINCT 列名称 FROM 表名称。
好久没有用sql了,好像最后用都是sql2000了,一晃眼,都sql2008了。
这次第一次用,好像比以前的简单多了。不过好多东西都忘了。