我正在尝试使用 INSERT SELECT 将不同的值插入到表中。这是我的查询
INSERT INTO oltp.Region(Region_Name,Country_Id)
(SELECT DISTINCT region,country_id FROM csv.Neighbourhoods, oltp.Country)
这些是表
oltp.国家
csv.邻里
我想要一个表格,显示区域名称和它们来自的国家/地区。
这些是表的创建
CREATE TABLE oltp.Country
(Country_Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
Country_Name nvarchar(255) NOT NULL UNIQUE)
CREATE TABLE oltp.Region
(Region_Id int NOT NULL PRIMARY KEY IDENTITY(1,1),
Region_Name nvarchar(255) NOT NULL UNIQUE,
Country_Id int FOREIGN KEY REFERENCES oltp.Country(Country_Id))
你需要一个JOIN
!
INSERT INTO oltp.Region (Region_Name,Country_Id)
SELECT DISTINCT n.region, c.country_id
FROM csv.Neighbourhoods n JOIN
oltp.Country c
ON n.country = c.country_name;
切勿在FROM
子句中使用逗号。始终使用正确、明确、标准、可读的JOIN
语法。
此外,您应该在Neighbourhoods
表中存储国家 ID ,而不是名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句