我想像这样在一个查询中插入多行:
insert into EducationInfo (student_id, school_id)
values (
(select id
from STUDENT
where iin in (select distinct iinplt
from TEST_STUDENT
where id_university = 9)), 23421
)
当然不可能。我知道我可以这样做:
values(1,23421),
values(2,23421)...
但是您可以看到,我不知道student_id
列中的ID,并且ID太多。有什么可行的方法吗?
答案 0 :(得分:5)
使用insert . . . select
:
insert into nedb.EducationInfo (student_id, school_id)
select id, 23421
from nedb.student
where iin in (select iinplt
from IMPORT_DATA.esuvo_students
where id_university = 9
);
请注意,使用select distinct
时不需要in
。
答案 1 :(得分:1)
使用insert ... select ... join,这样您就可以操纵联接,使其变得更加复杂,只是在其中
insert into nedb.EducationInfo (student_id, school_id)
select distinct s.id, 23421
from nedb.student s
join (SELECT distinct iinplt FROM IMPORT_DATA.esuvo_students
WHERE id_university = 9 ) es ON s.iin = es.iinplt
确保您的ON语句中没有太多或多个JOIN匹配项,否则可能会降低查询速度