我想将admission
中的数据插入student
。
INSERT INTO student(name,age) SELECT name, age from admission
但现在我需要向student
添加另外两个字段:username
和pasword
,同时我从admission
示例:
INSERT INTO student(name,age,username, password)
SELECT name, age
FROM admission.....
我该怎么做?
答案 0 :(得分:1)
我不知道username
和password
的值来自哪里,但您可以创建虚拟列(默认值)以匹配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
是对的。
SELECT
和INSERT
的行必须匹配。
但是,我不知道username
和password
字段来自哪里。
如果他们在同一个admission
表中,那么,@ john Woo的答案是正确的。
如果表不包含这些值,那么
你可以用,
update Student set username=
(select username from <table> and <condition>)
where <condition>
<table>
是包含username
字段的表格。
<condition>
取决于您如何识别行
或可能join
两个表,即admissions
,另一个表包含username
和password
,并在单个查询中完成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