1

I've one table Car as below

Car_ID | Car_Name

Sample data

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

I've data in Car table. Now i've other table Car_Detail as below

Car_Detail_ID | Car_ID | Car_Color

Now i've to insert data into Car_Detail from Car where Car_Color will be default value. How to achieve this in single statement ?

Expected result

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

EDIT

Sample Data

Car Table

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

Color Table

Color_ID    Color_Name
1           Red
2           Yellow
3           Blue
4           Green

Expected Result

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
John Woo
  • 258,903
  • 69
  • 498
  • 492
IT ppl
  • 2,626
  • 1
  • 39
  • 56

1 Answers1

3

use INSERT INTO...SELECT statement, the query below assumes that Car_Detail_ID is an auto-incremented column and Color has a default value of Red

INSERT INTO Car_Detail (Car_ID)
SELECT Car_ID
FROM Car

but if not,

INSERT INTO Car_Detail (Car_ID, Color)
SELECT Car_ID, 'Red' Color
FROM Car

or something like this,

INSERT INTO Car_Detail (Car_Detail_ID, Car_ID, Color)
SELECT Car_ID, Car_ID, 'Red' Color
FROM Car

UPDATE 1

use CROSS JOIN

INSERT INTO CAr_Detail(Car_ID, Color_ID)
SELECT  Car_ID, Color_ID
FROM Car CROSS JOIN Color
John Woo
  • 258,903
  • 69
  • 498
  • 492