整齐地“插入”列

时间:2017-02-09 21:54:15

标签: sql

我有一个名为“likes”的表,看起来像这样:

ID1     ID2
1247    1468
1641    1468
1316    1304
1025    1101

另一张名为“学生”的表格看起来像这样:

ID      Name    Grade
1510    Jordan  9
1689    Gabriel 9
1381    Tiffany 9
1709    Cassandra   9
1101    Haley   10
1782    Andrew  10
1468    Kris    10
1641    Brittany    10
1247    Alexis  11
1316    Austin  11
1911    Gabriel 11
1501    Jessica 11
1304    Jordan  12
1025    John    12
1934    Kyle    12
1661    Logan   12

我要做的是返回一个包含以下列的新表:

NameofID1,GradeofID1,NameOfID2,GradeOfID2,它等同于某种“插入”。

我知道如何做到这一点吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您需要两次加入学生表。

--insert into newtable(col1,col2,col3,col4)
select s1.name as name1,s2.name as name2,s1.grade as grade1,s2.grade as grade2
from likes l
join students s1 on s1.id=l.id1
join students s2 on s2.id=l.id2

答案 1 :(得分:0)

你只需要加入桌子两次:<​​/ p>

Select s1.Name,s1.grade,s2.Name,s2.grade,
  from  likes l
   inner join students s1
    on l.ID1 = s1.ID
   inner join  students s2
    on l.id2 = s2.ID
  Where l.ID1 = 1247

答案 2 :(得分:0)

您可以使用简单的INNER JOIN来获取值,例如:

SELECT s1.name, s1.grade, s2.name, s2.grade
FROM student s1 JOIN likes l ON s1.id = l.id1
JOIN student s2 ON s2.id = l.id2;

这里是 SQL Fiddle

获得值后,可以使用INSERT INTO.. SELECT语句插入新表。

Here INSERT INTO... SELECT statememt的文档和示例。