mysql从另一个表的多行插入信息

时间:2013-06-06 14:31:23

标签: mysql sql

我正在使用 MySQL版本5.6 。 我有一个表event,其中包含两个ID和一个日期,以及一个包含列student的表id。我希望在名称匹配(WHERE firstname =.., AND lastname=..,)时插入两个ID。但是,我不太清楚如何从一个插入命令中的两行中取id。有人可以帮我吗?

谢谢, 保罗

1 个答案:

答案 0 :(得分:9)

如果您要插入表格,则需要使用insert。要从另一个表或查询中获取数据,您需要insert . . . select表单。

根据你的说法,这看起来像你想要的东西:

insert into event(id1, id2, date)
    select s1.id, s2.id, now()
    from student s1 cross join
         student s2
    where s1.id <> s2.id and
          s1.firstname = firstname and s1.lastname = lastname and
          s2.firstname = firstname and s2.lastname = lastname;

它将返回名称匹配的所有学生对(但不具有相同的ID)。