как использовать объединить 2 таблицы - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть 3 таблицы T1, T2, T3, таблица T1 содержит 2 столбца (ключ, класс / ученик). Столбец класс / ученик содержит как классы, так и ученика, например (английский, математика, оценка, том, ..), таблица 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 ;

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

использовать явное соединение, а не разделенное комой соединение, мне кажется, вы пытаетесь, как показано ниже запрос

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 голосов
/ 12 апреля 2019

Попробуйте ниже:

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') 
...