我有一个名为“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,它等同于某种“插入”。
我知道如何做到这一点吗?
谢谢!
答案 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的文档和示例。