0
早安隨機值,T-SQL:插入到連接
我有一個創建了,我想在我的「主表」,Car_Spec鏈接在一起6個表測試數據庫。
我希望我的表「Car_Spec」根據「模型」字段中的內容自動填充'Manufacutre_ID'字段。
即,如果Model_ID是104(熊貓),那麼我想製造ID是102(菲亞特)。
我剛纔創建我的數據庫,並使用下面的代碼表:
CREATE TABLE car_manufacture
(
manufacture_ID int NOT NULL IDENTITY(100,1),
manufacture_Name varchar(50) NOT NULL,
manufacture_Country varchar(50),
PRIMARY KEY(manufacture_ID)
)
CREATE TABLE car_model
(
model_ID int NOT NULL IDENTITY(100,1),
manufacture_ID INT,
model_name varchar(50) NOT NULL,
PRIMARY KEY (model_ID),
FOREIGN KEY (manufacture_ID) REFERENCES car_manufacture (manufacture_ID),
)
CREATE TABLE car_drive
(
drive_ID int NOT NULL,
drive_side varchar(10)
PRIMARY KEY (drive_ID)
)
CREATE TABLE car_litre
(
litre_ID int NOT NULL IDENTITY(100,1),
litre int,
PRIMARY KEY (litre_ID)
)
CREATE TABLE car_fueltype
(
fuel_ID INT NOT NULL,
fuel VARCHAR(20),
PRIMARY KEY (fuel_ID)
)
CREATE TABLE car_spec
(
car_ID INT NOT NULL IDENTITY (100,1),
manufacture_ID INT NOT NULL,
model_ID INT NOT NULL,
drive_ID INT NOT NULL DEFAULT '3',
fuel_ID INT NOT NULL DEFAULT '4',
age INT,
miles INT,
registration VARCHAR (10),
previous_owners INT,
PRIMARY KEY (car_ID),
FOREIGN KEY (manufacture_ID) REFERENCES car_manufacture (manufacture_ID),
FOREIGN KEY (model_ID) REFERENCES car_model(model_ID),
FOREIGN KEY (drive_ID) REFERENCES car_drive (drive_ID),
FOREIGN KEY (fuel_ID) REFERENCES car_fueltype(fuel_ID)
)
我已填充所有,但使用下面的代碼也是最後一個表:
INSERT INTO car_manufacture (manufacture_Name, manufacture_Country) VALUES
('Volkswagen', 'Germany'),
('Fiat', 'Italy'),
('Seat', 'Spain'),
('Ford', 'American')
INSERT INTO car_model (manufacture_ID,model_name)VALUES
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Volkswagen'),'Polo'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Volkswagen'),'Golf'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Fiat'),'Panda'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Fiat'),'Punto'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Seat'),'Ibiza'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Seat'),'Leon'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Fiat'),'500'),
((Select manufacture_ID from car_manufacture where manufacture_Name = 'Volkswagen'),'Passat')
INSERT INTO car_drive (drive_ID, drive_side)VALUES
(1, 'Left'),
(2, 'Right'),
(3, 'Unknown')
INSERT INTO car_litre (litre) Values
(1),
(1.2),
(1.4),
(1.6),
(1.8),
(2)
INSERT INTO car_fueltype (fuel_id,fuel) values
(1,'Petrol)'),
(2,'Diesel'),
(3,'Gas'),
(4,'Unknown')
這是我卡死...
Insert into car_spec (age, car_ID, drive_ID, fuel_ID, manufacture_ID, miles, model_ID, previous_owners, registration)
Values
(
3,
(select TOP 1 model_ID from car_model ORDER BY NEWID()),
(select TOP 1 drive_ID from car_drive ORDER BY NEWID()),
(select TOP 1 fuel from car_fueltype ORDER BY NEWID()),
**THIS IS WHERE I WANT A STATEMENT 'Select manufacture_ID from car_manufacutre based on model_ID,', **
車型ID =車型ID。
任何建議將是偉大的,我想過使用變量,但再次,不知道如何工作。我認爲InnerJoin會解決這個問題,但我無法解決這個問題。
感謝 山姆
嗨戈登,我不認爲這回答我的問題。 我希望汽車製造商能夠使用此方法進行調查,但是要將它們鏈接在一起時與car_model相關聯的值。 – SamCramphorn
忽略上述內容。我剛剛意識到你做了什麼。我會測試這個併發布我的結果。 – SamCramphorn
@SamCramphorn。 。 。你可以刪除你自己的評論。 –