我有3个表T1,T2,T3表T1包含2列(键,类/学生)列类/学生包含类和学生例如(英语,数学,标记,汤姆,...)表T2包含2列(班级,学生)每个班级都有一个以上的学生,这2栏使用T1的钥匙。现在在表T3中我想插入一个特定的类,其学生在A列中用于课程,B用于学生认为这些列使用T1中的密钥我试过这个但它返回特定课程与其学生但是一个lign被重复了很多时间:
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 ;
使用显式连接而不是逗号分隔连接,在我看来你正在尝试下面的查询
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')
试试以下:
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')