这是测试代码。我希望更新city_id,以使city_id必须与select语句中显示的该城市的第一个 ID匹配。例。在这里,我希望city_id [最后一栏]为1,1,3,3
create table student2 (id int not null primary key identity,
city_name varchar(25),
student_name varchar(25),
city_id int null)
insert into student2 values('Boston','Nome',null)
insert into student2 values('Boston','Tiger',null)
insert into student2 values('Miami','Andy',null)
insert into student2 values('Miami','Moran',null)
如果完成这项工作,两个查询就没问题了。我有很多记录。创建临时表并将结果输出到文本文件也很好。在这种情况下,您将打印id和city_id
答案 0 :(得分:2)
最好的方法是创建一个名为cities
的新表,其中包含city_id
列和city_name
列。这称为规范化数据库,并降低问题的复杂性。
对于您的示例,您将拥有:
id |city_id |student_name
1 |1 |Nome
2 |1 |Tiger
3 |2 |Andy
4 |2 |Moran
city_id |city_name
1 |Boston
2 |Miami
答案 1 :(得分:1)
像这样:
update student2
set city_id =
(select min(id) from student2 s where s.city_name = student2.city_name)
祝你好运!