1

私は以下のように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_Color がデフォルト値になる Car から Car_Detail にデータを挿入する必要があります。単一のステートメントでこれを達成する方法は?

期待される結果

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

INSERT 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 に答える