我有这样的数据库结构::
数据库结构 ::
ATT_table- ActID(PK), assignedtoID(FK), assignedbyID(FK), Env_ID(FK), Product_ID(FK), project_ID(FK), Status
Product_table - Product_ID(PK), Product_name
Project_Table- Project_ID(PK), Project_Name
Environment_Table- Env_ID(PK), Env_Name
Employee_Table- Employee_ID(PK), Name
Employee_Product_projectMapping_Table -Emp_ID(FK), Project_ID(FK), Product_ID(FK)
Product_EnvMapping_Table - Product_ID(FK), Env_ID(FK)
我想在ATT_Table
. 现在在该表中,我有一些列,例如assignedtoID
, assignedbyID
, envID
, ProductID
,project_ID
它们在此表中是 FK,但在其他表中它们只是数字)。
现在,当我从用户输入数据时,我以字符串的形式输入数据,例如用户输入Name
( Employee_Table
)、product_Name
( Product_table
) 而不是直接输入 ID。所以我想首先让用户输入名称(Employee
或product
或Project
或Env
),然后提取其主键(Emp_ID, product_ID, project_ID, Env_ID
)的值,然后将它们插入ATT_table
到assignedtoID, assignedbyID, envID, ProductID, project_ID
.
请注意,从中assignedtoID, assignedbyID
引用。Emp_ID
Employee_Table
这该怎么做 ?我有这样的东西,但它不工作::
INSERT INTO ATT_TABLE(Assigned_To_ID,Assigned_By_ID,Env_ID,Product_ID,Project_ID)
VALUES (A, B, Env_Table.Env_ID, Product_Table.Product_ID, Project_Table.Project_ID)
SELECT Employee_Table.Emp_ID AS A,Employee_Table.Emp_ID AS B, Env_Table.Env_ID, Project_Table.Project_ID, Product_Table.Product_ID
FROM Employee_Table, Env_Table, Product_Table, Project_Table
WHERE Employee_Table.F_Name= "Shantanu" or Employee_Table.F_Name= "Kapil" or Env_Table.Env_Name= "SAT11A" or Product_Table.Product_Name = "ABC" or Project_Table.Project_Name = "Project1";