插入选择

时间:2012-09-06 16:40:00

标签: sql

我想将admission中的数据插入student

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

但现在我需要向student添加另外两个字段:usernamepasword,同时我从admission

中选择数据

示例:

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

我该怎么做?

3 个答案:

答案 0 :(得分:1)

我不知道usernamepassword的值来自哪里,但您可以创建虚拟列(默认值以匹配INSERT INTO中的列数。例如,

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

答案 1 :(得分: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
      ....

答案 2 :(得分:0)

如果两个新字段都可以为空,则可以执行以下操作:

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