我有以下数据库结构,以3个表为例:
员工
方案
案例
假设我已经在employee和scenario表中有数据,我想在case表中插入一个新的case,以便在插入过程中填充外键。新案例在employee表中有employee_no
,在scenario表中有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
答案 0 :(得分: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'