MySQL:如何插入一个表,其中两个外键链接到另外两个表?

我有以下数据库结构,以3个表为例:

雇员

  • id //主键,自动增量

  • employee_no //一个varchar

脚本

  • id //主键,自动增量

  • 键//一个varchar

案件

  • id //主键,自动增量

  • employee_id // Employee表的外键

  • scenario_id // Scenario表的外键

假设我已经在employee和scenario表中有数据,我想在case表中插入一个新的case,以便在插入期间填充外键 . 新案例在employee表中有 employee_no ,在场景表中有 key . 我需要使用上面的值加入这两个表来获取员工ID和方案ID .

这篇文章(Mysql: How to insert values in a table which has a foreign key)展示了如何使用一个外键完成此操作,如何使用两个外键执行相同的操作?

我目前有这样的东西不起作用:

INSERT INTO `case` (scenario_id, employee_id, employee_no)
SELECT 
(SELECT scenario.id FROM scenario WHERE scenario.`key` = 'UC01') as scenario_id,
(SELECT employee.id, employee.employee_no FROM employee WHERE employee.employee_no = "0001") as employee_id, employee_no

回答(1)

3 years ago

加入两个表:

INSERT INTO case (scenario_id, employee_id)
SELECT s.id, e.id
FROM scenario AS s
CROSS JOIN emplopyee AS e
WHERE s.`key` = 'UC01'
AND e.employee_no = '0001'