Sql 如何在一条语句中使用一些静态数据将数据从一个表插入到另一个表中?
我有一辆桌子车,如下所示Sql 如何在一条语句中使用一些静态数据将数据从一个表插入到另一个表中?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一辆桌子车,如下所示 Car_ID | Car_Name 样本数据 Car_ID Car_Name 1 Honda City 2 Ferrari 3 Mercedes 4 Rolls Royce 我在汽车表中有数据。现在我有其他表车详细信息如下 Car_Detail_ID | Car_ID | Car_Color 现在,我必须将数据从Car插入Car_细节,其中Car_颜色将是默认值。如何在单个语句中实现这一点 预期
Car_ID | Car_Name
样本数据
Car_ID Car_Name
1 Honda City
2 Ferrari
3 Mercedes
4 Rolls Royce
我在汽车表中有数据。现在我有其他表车详细信息如下
Car_Detail_ID | Car_ID | Car_Color
现在,我必须将数据从Car插入Car_细节,其中Car_颜色将是默认值。如何在单个语句中实现这一点
预期结果
Car_Detail_ID Car_ID Color
1 1 Red
2 2 Red
3 3 Red
4 4 Red
Car_Detail_ID Car_ID Color_ID
1 1 1
2 2 1
3 3 1
4 4 1
5 1 2
6 2 2
7 3 2
8 4 2
9 1 3
10 2 3
11 3 3
12 4 3
13 1 4
14 2 4
15 3 4
16 4 4
编辑
样本数据
Car_ID Car_Name
1 Honda City
2 Ferrari
3 Mercedes
4 Rolls Royce
汽车表
Car_ID Car_Name
1 Honda City
2 Ferrari
3 Mercedes
4 Rolls Royce
Color_ID Color_Name
1 Red
2 Yellow
3 Blue
4 Green
颜色表
Car_ID Car_Name
1 Honda City
2 Ferrari
3 Mercedes
4 Rolls Royce
Color_ID Color_Name
1 Red
2 Yellow
3 Blue
4 Green
预期结果
Car_Detail_ID Car_ID Color
1 1 Red
2 2 Red
3 3 Red
4 4 Red
Car_Detail_ID Car_ID Color_ID
1 1 1
2 2 1
3 3 1
4 4 1
5 1 2
6 2 2
7 3 2
8 4 2
9 1 3
10 2 3
11 3 3
12 4 3
13 1 4
14 2 4
15 3 4
16 4 4
使用
INSERT INTO…SELECT
语句,下面的查询假设Car\u Detail\u ID
是一个自动递增的列,Color
的默认值为Red
INSERT INTO Car_Detail (Car_ID)
SELECT Car_ID
FROM Car
但如果不是
INSERT INTO Car_Detail (Car_ID, Color)
SELECT Car_ID, 'Red' Color
FROM Car
或者像这样的
INSERT INTO Car_Detail (Car_Detail_ID, Car_ID, Color)
SELECT Car_ID, Car_ID, 'Red' Color
FROM Car
更新1
使用交叉连接
INSERT INTO CAr_Detail(Car_ID, Color_ID)
SELECT Car_ID, Color_ID
FROM Car CROSS JOIN Color
UNION
,您可以显示smple数据吗?好的,我正在更新相关数据