首页 文章

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

提问于
浏览
0

我有以下数据库结构,以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 回答

  • 1

    加入两个表:

    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'
    

相关问题