Insert
如何使用條件從多個表中插入各種記錄
我正在創建一個關係數據庫,我目前有 2 個表(
Staff
和Student
)員工看起來像這樣
學生長這樣
我創建了另一個名為
Phones
我正在嘗試將這些特定記錄從兩個表中插入:
StudentID
andStaffID
,Class
, andPhone_Models
, 到新表中Phones
。但是,如果員工的>= 1 ,它應該只Staff
根據條件從表中插入記錄。TotalPhonesConfiscated
我已經嘗試過,但這沒有提供正確的表格:
INSERT INTO Phones ( StudentID, StaffID, Phone_Model, Class ) SELECT StudentID, StaffID, Phone_Model, Class FROM Student, Staff WHERE TotalPhonesConfiscated >= 1;
我不知道如何插入記錄,所以看起來每個人都與每個人
StaffID
匹配StudentID
,它似乎適用於Student
記錄但不適用於Staff
記錄。理論上我想要的應該是這樣的:我的 SQL 語句中是否缺少某些內容?
理論上我想要的應該是這樣的:
| StudentID | StaffID | Phone_Model | Class | | --------- | ------- |------------ | ----- | | 1 | 1 | iPhone7 | S201 | 2 | 3 | iPhone11 | S203
我的 SQL 語句中是否缺少某些內容?
Staff
您缺少和之間的關係Student
。您需要StaffID int
在Student
表中有一列。create table Staff ( StaffID int , Class varchar(10), TotalPhonesConfiscated int ); insert into Staff values (1,'S201',1), (2,'S202',0), (3,'S203',1); create table Student ( StudentID int , Phone_Model varchar(20), StaffID int ); insert into Student values (1,'iPhone7',1), (2,'Samsung',3); create table Phones ( StudentID int, StaffID int , Phone_Model varchar(20), Class varchar(10));
然後你可以插入數據:
INSERT INTO Phones ( StudentID, StaffID, Phone_Model, Class ) SELECT StudentID, Student.StaffID, Phone_Model, Class FROM Student INNER JOIN Staff on Student.StaffID=Staff.StaffID WHERE TotalPhonesConfiscated >= 1; select * from Phones;
將導致:
結果:
StudentID StaffID Phone_Model Class 1 1 iPhone7 S201 2 3 Samsung S203