1

我从这里下载了这个 csv 文件,它包含以下内容:

数据库列:

ZIP
LATITUDE
LONGITUDE
CITY
STATE
COUNTY
ZIP_CLASS

现在我将它导入到 SQL Server 中,并且我有一个包含相同列的表。从该表中,我创建了一个statescounty表,如下所示:

国家

insert into states(name)
select distinct [state] from newlist order by state asc

insert into counties(name, stateid)
select distinct n.[county], s.id as stateid
from newlist n
inner join states s on n.[state] = s.name
order by county asc

现在,当我想创建一个cities表并与县 ID 建立关系时,我不断地找到许多重复项

Cities

select distinct n.[city], c.id as countyid
from newlist n
inner join counties c on n.[county] = c.name
order by city asc

原始表有大约 30,000 条记录,运行时它给了我超过 140,000 条记录。我看到的是它与不同州的县有关吗?如果需要,我可以将 SQL 脚本附加到表结构和数据中,如果这样更容易帮助我解决这个问题。真的卡住了,不知道怎么解决。

4

1 回答 1

1

大约有 10 个州拥有“橙县”。县表中的州是来自您的源数据,还是您通过名称推断?

尝试这个:

INSERT INTO Counties(name, stateid)
  SELECT DISTINCT LIST.name LIST.stateid
  FROM NewList  LIST

接着

 INSERT INTO Cities(city, countyid)
  SELECT DISTINCT LIST.city, COUNTY.countyid
    FROM NewList LIST
         INNER JOIN Counties COUNTY
            ON COUNTY.state = LIST.stateid
            AND COUNTY.name = LIST.county

这里假定 stateid 是两个字符的状态码

于 2013-07-08T18:01:44.260 回答