私はこのようなデータベース構造を持っています::
データベース構造 ::
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
、このテーブルでは FK ですがassignedbyID
、他のテーブルでは主キーは単に数値です)。envID
ProductID
project_ID
ユーザーからデータを入力するときは、 ID を直接入力するのではなく、ユーザーがName
( Employee_Table
)、product_Name
( ) を入力するような文字列の形式でデータを取得します。Product_table
したがって、最初にユーザーに名前 (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";