私はこのようなデータベース構造を持っています::
データベース構造 ::
ATT_table- ActID(PK), assignedtoID(FK), assignedbyID(FK), Env_ID(FK), Product_ID(FK), project_ID(FK), StatusProduct_table - Product_ID(PK), Product_nameProject_Table- Project_ID(PK), Project_NameEnvironment_Table- Env_ID(PK), Env_NameEmployee_Table- Employee_ID(PK), NameEmployee_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、他のテーブルでは主キーは単に数値です)。envIDProductIDproject_ID
ユーザーからデータを入力するときは、 ID を直接入力するのではなく、ユーザーがName( Employee_Table)、product_Name( ) を入力するような文字列の形式でデータを取得します。Product_tableしたがって、最初にユーザーに名前 (EmployeeまたはproductまたはProjectまたはEnv) を入力させ、次にその主キーの値 ( ) を取得してから、 の代わりにEmp_ID, product_ID, project_ID, Env_ID挿入します。ATT_tableassignedtoID, 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";