我有3张桌子T1,T2,T3 表T1包含2列(键,班级/学生),列class / student包含班级和学生,例如(英语,数学,马克,汤姆..) 表T2包含2列(班级,学生),每个班级中有不止一个学生,并且此2列使用T1中的键。 现在在表T3中,我想在班级A的列中插入其学生的班级,在班级B的学生中插入一个特定的班级,原因是该列使用T1中的键 我尝试过此方法,但它会返回其学生的特定班级,但是重复多次会浪费很多时间:
INSERT INTO T3 (A,B)
SELECT m.class, m.student FROM T1 b,T2 m
WHERE m.class=(select key from T1 where class/student='English') AND b.KEY = m.student ;
答案 0 :(得分:1)
使用显式连接而不是逗号分隔的连接,在我看来,您正在尝试以下查询
INSERT INTO T3 (A,B)
SELECT m.class, m.student FROM T1 a
join T1 b on a."key"=b."key"
join
T2 m on a."key"=m.student
WHERE m.class in (select "key" from T1 where class='English')
答案 1 :(得分:0)
尝试以下方法:
INSERT INTO T3 (A , B)
SELECT M.class, M.student
FROM T1 X Join T1 Y ON X.key = Y.key
Join T2 Z ON X.key = M.student
WHERE M.Class IN (SELECT key FROM T1 WHERE class ='English')