2011-03-10 49 views
0

我把桌子下面的代碼一起:奇怪插入問題

create table temp 
(pnum integer, 
pnam varchar(30)); 

insert into temp(pnum) 
select player_number 
from players; 

insert into temp(pnam) 
select player_name 
from positions; 

它基本上作品除了事實,而這兩個列在整個表preeent,他們按順序填寫。我希望從第二個選擇的所有數據出現在第一個選擇ON THE SAME LINE的數據之後。目前,我只是在pnam列中得到一堆空白行(而pnum填寫得很好),然後在pnum列中找到一堆空白行(而pnam填寫得很好)。如果有人知道如何解決這個問題,您的及時答覆將非常感激!

+0

如何'玩家'涉及'職位'? – 2011-03-10 10:06:46

回答

2

是的 - 問題是你正在做2個離散和單獨的插入,所以SQL不知道你想要的數字和名稱匹配。您需要將Select語句重寫爲一個。

假設玩家和職位表都包含一個叫做player_number的字段,您可以使用它將兩個表連接在一起(如果沒有,則選擇這兩個表中將數據綁定在一起並使用它的唯一字段。

insert into temp(pnum,pnam) 
select player_number,player_name 
from players inner join positions on players.player_number = positions.player_number 

注意事項:。

1號線 - 看看我們現在是如何插入兩列,同時這會給你你正在尋找

2號線的數據佈局 - 看看我們如何選擇兩位要插入的數據

第3行 - 這是我們將兩個表連接在一起的地方(使用兩個表中的player_number列)。我們需要將它們結合在一起,因爲在第2行中我們需要從每一列中選擇一列。

希望是有道理的。如果沒有,大喊。另外,也許在inserting rows using INSERT and SELECTusing inner joins