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

谢谢,
保罗

最佳答案

如果您尝试插入表中,那么您想使用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)。

10-05 23:05
查看更多