【问题标题】:How to insert into a row, a value from other table?如何将其他表中的值插入一行?
【发布时间】:2020-09-17 12:20:46
【问题描述】:

我有 3 个 Mysql 表。

包含课程和实验室及其 ID 的表格。

包含教师列表及其主题的表格。 将成为时间表的表格。**

我想将其中一位物理学家随机分配到我的第三张桌子上的一个物理实验室,这将是日程安排。

INSERT INTO schedule(teacher_name, class_id)
VALUES (select teacher_name from teachers_list where subject="Physicist” order by rand() limit 1, 

select id from lab_list where lab="Physics_lab" order by rand() limit 1);

**这个不行:(

你能帮我吗?**

【问题讨论】:

标签: mysql sql select mysql-workbench sql-insert


【解决方案1】:

我认为您需要 insert ... select 语法以及子查询:

insert into schedule(teacher_name, class_id)
select 
    (
        select teacher_name 
        from teachers_list 
        where subject = 'Physicist'
        order by rand()
        limit 1
    ),
    id
from lab_list
where lab = 'Physics_lab'

【讨论】:

  • 这非常非常有帮助!有用!我能否以某种方式确保在接下来的查询中不会为其他班级选择同一位老师?
  • @ChristosTsaki;可能,但是您的问题完全缺乏可以帮助说明如何执行此操作的信息。我建议接受这个答案,然后提出一个新问题,添加一个可重现的最小示例来演示您真正想要的内容(即来自相关表格的示例数据以及所需的结果 - 作为表格文本)。
猜你喜欢
  • 1970-01-01
  • 2022-06-28
  • 2013-04-22
  • 2021-10-03
  • 1970-01-01
  • 2018-02-11
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多