如何使用join 2表

问题描述 投票:-1回答:2

我有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 ;
sql oracle join sql-insert
2个回答
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') 

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') 
© www.soinside.com 2019 - 2024. All rights reserved.