2012-09-06 180 views
1

我想從admission插入數據到student插入選擇

INSERT INTO student(name,age) SELECT name, age from admission 

但現在我需要2個字段添加到student:在同一時間,我從admission

例如,選擇數據usernamepasword

INSERT INTO student(name,age,username, password) 
    SELECT name, age 
    FROM admission..... 

我怎樣才能做到這一點?

+3

其中'username'和'password'的值是從哪裏來的? –

+0

我在這裏看到一些有用的答案...爲什麼不接受其中之一? – levtatarov

回答

1

我不知道哪裏是usernamepassword來自值,但你可以創建一個虛擬柱(默認值所以列數匹配您INSERT INTO。例如,

INSERT INTO student(name,age,[username], [password]) 
SELECT name, age, 'userHere' as [username], 'passHere' as [password] 
from admission..... 
+0

,但表入場沒有字段用戶名和密碼。我想要添加更多的字段到表student.Thank –

+0

我知道列可能不存在,因爲你說過,但我問在哪裏做'用戶名'和'密碼'從哪裏來?就像你在上面看到的那樣,你可以把userHere和passwordHere改成默認值。 –

1

查詢您寫道:

INSERT 
    INTO student(name,age) 
    SELECT name, age from admission 

是正確的。 SELECTINSERT的行必須匹配。

但是,我不知道usernamepassword字段來自哪裏。 如果他們在同一個admission表中,那麼@john Woo的答案是正確的。 如果表中不包含這些值,然後 你可以使用,

update Student set username= 
(select username from <table> and <condition>) 
where <condition> 

<table>是包含username字段的表。

<condition>取決於你如何識別

或可能join兩個表,即admissions行和含usernamepassword其他表並完成insert運行在單個查詢

INSERT 
    INTO student(name,age,username,password) 
    SELECT a.name, a.age, b.username, b.password 
     FROM admission a 
     JOIN <table> b ON a.username = b.username 
     .... 
0

如果兩個新字段爲空,您可以這樣做:

INSERT INTO student(name,age,username, password) 
SELECT name, age, null, null 
FROM admission