1

我有一张桌子车如下

Car_ID | Car_Name

样本数据

Car_ID    Car_Name
1         Honda City
2         Ferrari
3         Mercedes
4         Rolls Royce

我在 Car 表中有数据。现在我有其他表 Car_Detail 如下

Car_Detail_ID | Car_ID | Car_Color

现在我必须将数据从 Car 插入 Car_Detail ,其中 Car_Color 将是默认值。如何在单个语句中实现这一点?

预期结果

Car_Detail_ID   Car_ID    Color
1               1         Red
2               2         Red
3               3         Red
4               4         Red

编辑

样本数据

车台

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_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
4

1 回答 1

2

useINSERT INTO...SELECT语句,下面的查询假定它Car_Detail_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

采用CROSS JOIN

INSERT INTO CAr_Detail(Car_ID, Color_ID)
SELECT  Car_ID, Color_ID
FROM Car CROSS JOIN Color
于 2012-11-22T13:25:56.493 回答