我对SQL很陌生,今天我被分配了一项重要任务--为表中的数据创建一个迁移脚本。据我理解,迁移脚本正在复制表A中的数据,并将其移动到其他表B和C等。当数据库设计不断变化,并且团队希望保存数据时,这种情况似乎很常见。
我的任务是:我有一个带有JobOffer字段的CityId表。现在,团队希望删除该字段,并保留信息,将CityId添加到Address表中,并使用名为Location的插入表连接两个表(这允许JobOffer具有多个地址)。

我不知道该如何完成这项任务。在c#中,我所代表的是这样一个类比:
foreach (var row in JobOffer)
{
int addressId;
if (!Address.Contains(row.CityId)){
addressId = Address.add(row.CityId);
Locaion.add(row.JobOfferId, addressId);
}
else
{
Locaion.add(row.JobOfferId, Address.get(row.CityId));
}
}我如何在SQL中做到这一点?
发布于 2015-02-26 15:44:27
你需要三张桌子--一张是候选人的,一张是地址(地点),另一张是连接两个的。第三个表是必要的,因为您描述的是一个多到多的关系。单个候选可以具有多个位置,单个位置可以容纳多个候选。
当我创建与您类似的数据时,它对输入数据进行了两次扫描:第一次检查是否有所有位置。如果有遗漏,我就把它插入到location表中。
第二次扫描将数据插入候选人和烛光表。在这一点上,我肯定知道,我有一个地址,每一个候选人在位置表。
以下是表的说明:
创建表候选项(候选人身份主键,idate datetime默认值getdate(),name varchar(200))
创建表的候选点(candidateid int,locid int)
创建表位置(松散int标识主键、城市varchar(500)、状态varchar(500))
https://stackoverflow.com/questions/28746205
复制相似问题