我使用的是MySQL 5.6版本。我有一个表"event",包含两个id和一个日期,还有一个表"student",其中包含一个"id"列。我想在名字匹配时插入两个id (WHERE firstname =.., AND lastname=..,)。但是,我不知道如何在一个插入命令中从两行中获取"id"。请问有人可以帮我吗?
谢谢, Paul
谢谢, Paul
如果您想要插入表格,那么您需要使用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不同的配对。