2017-02-09 17 views
0

我有一個表,叫「喜歡」,看起來像這樣:「插入」列整齊

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

'mysql'或'sql-server'?選一個。 – shmosel

+0

我刪除了不兼容的數據庫標記。請標記您真正使用的數據庫。 –

+0

*我想要做的是返回一個新表*。您無法返回表格。你想寫一個查詢嗎?創建一個視圖?創建一個新表? – shmosel

回答

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 
0

你只需要加入表兩次:

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 
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例子。