Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:如何在一个表中插入两个外键链接到其他两个表?_Mysql_Database_Insert_Foreign Keys - Fatal编程技术网

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

MySQL:如何在一个表中插入两个外键链接到其他两个表?,mysql,database,insert,foreign-keys,Mysql,Database,Insert,Foreign Keys,我有以下数据库结构,以3个表为例: 雇员 id//主键,自动递增 员工编号//a varchar 情景 id//主键,自动递增 key//a varchar 案例 id//主键,自动递增 employee\u id//employee表的外键 方案\方案id//方案表的外键 假设我在employee and scenario表中已经有数据,我想在case表中插入一个新的case,以便在插入期间填充外键。新案例在employee表中有employee\u no,在scenario表中有

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

雇员

  • id//主键,自动递增
  • 员工编号//a varchar
情景

  • id//主键,自动递增
  • key//a varchar
案例

  • id//主键,自动递增
  • employee\u id//employee表的外键
  • 方案\方案id//方案表的外键
假设我在employee and scenario表中已经有数据,我想在case表中插入一个新的case,以便在插入期间填充外键。新案例在employee表中有
employee\u no
,在scenario表中有
key
。我需要使用上述值连接两个表,以获得员工id和场景id

这篇文章()展示了如何使用一个外键来实现这一点,如何使用两个外键来实现同样的功能

我目前有一些类似的东西不起作用:

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
连接两个表:

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'

有什么问题?为什么你认为有两个外键有什么不同?@PM77-1我不知道如何将两个select查询组合在一起。谢谢!这正是我要找的。