2012-09-06 4 views
1

admission의 데이터를 student에 삽입하고 싶습니다. usernamepasword을 내가 admission선택 삽입

예로부터 데이터를 선택하고 동시에 :

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

내가이 작업을 수행 할 수있는 방법

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

는하지만 지금은 student 2 개 이상의 필드를 추가 할 필요가 ? 에서 오는 usernamepassword의 값이 어디에

+3

'username'과'password'의 값은 어디에서 왔습니까? –

+0

몇 가지 유용한 답변을 참조하십시오 ... 왜 그 중 하나를 허용하지 않습니까? – levtatarov

답변

1

는 나도 몰라하지만 당신은 그래서 당신의 INSERT INTO의 열 수를 일치 (기본값와 )가상 열을 생성 할 수 있습니다. 예,

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

하지만 표 승인에는 필드 사용자 이름과 password.i가 없습니다. student 테이블에 더 많은 필드를 추가하고 싶습니다. 감사합니다. –

+0

내가 말한대로 열이 존재하지 않을 수 있음을 알고 있지만'username'과 '비밀 번호'가 왔어? 위에서 볼 수 있듯이'userHere'와'passwordHere'를'default value '와 같이 변경할 수 있습니다. –

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>

는 단일 쿼리

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

두 경우에

또는 아마 join 두 개의 테이블이 admissions 즉 행과 usernamepassword를 포함하는 다른 테이블을 식별하고 insert 작업을 완료하는 방법에 따라 달라집니다 새로운 필드는 nullable입니다. 다음과 같이 할 수 있습니다.

INSERT INTO student(name,age,username, password) 
SELECT name, age, null, null 
FROM admission 
관련 문제