我正在使用 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)。