比较两个表并将匹配的内容插入另一个表

时间:2014-01-21 03:48:38

标签: sql select

我已经在这个问题上工作了3个月,然后放弃了一两次。是的,我是新手。我用数据创建了3个表。表1有一个字母和数字。表2有一个名称,字母和数字。表3有最终结果。我想比较T1和T2。如果T1中的名称和编号与表2中的名称和编号匹配,我希望T3中的结果包括姓名,字母和数字。这是我到目前为止所做的,但它不起作用。

SELECT * FROM T1 and SELECT * FROM T2
WHEN 
TABLE T1(letter) && TABLE T2(letter)
AND 
TABLE T1(number) && TABLE T2(letter)
INSERT INTO TABLE T3 (name,letter,number)

2 个答案:

答案 0 :(得分:1)

您需要的是根据属性名称和字母对第一个和第二个表进行内部联接。

SELECT T2.name, T2.letter, T2.number
FROM T1
INNER JOIN T2
ON T1.letter=T2.letter AND T1.number=T2.number;

有关详细信息,请参阅http://www.w3schools.com/sql/sql_join.asp

答案 1 :(得分:0)

扩展Dinesh的答案,

你需要一个内部联接。内部联接为您提供与您指定的两个表中的列匹配的行。

然后,您可以将其组合到insert语句中,以将其放入T3表中。所以这是一个完整的SQL语句:

INSERT INTO T3
SELECT T2.name, T2.letter, T2.number
FROM T2
    INNER JOIN T1
    ON T2.letter = T1.letter
    AND T2.number = T1.number;

作为旁注,还有左连接和右连接(并且更多)。将左,内,右连接想象为维恩图中的两个圆。