2014-04-27 6 views
0

나는 다음과 같은 명령을 사용합니다 :한 테이블의 값을 다른 테이블의 특정 행에 추가하는 방법은 무엇입니까?

insert into PERSON (hometown) 
where person_name="Peter" 

select city from COUNTRY 
where country_id= 2; 

그것은 분명히 잘못된 것입니다! 하나 개의 테이블에서(국가의 도시 ID가 2 인 기록에서) 특정 값을 선택하고 다른 테이블 (이름이 베드로 사람의 고향)에 추가합니다 간단히 말해서

, 명령, 그래서 기본적으로 한 테이블에서 다른 테이블의 특정 행까지의 특정 속성 값입니다.

그 명령은 무엇입니까?

+0

이 mysql 또는 일부 다른 맛, 문법 업데이트를 맛을 사이에 크게 다릅니다. –

+0

@Ian Laird MySQL – Solace

답변

2

이 작동합니다 :

UPDATE Person SET City=(SELECT City FROM Country WHERE Country_id = 2) 
WHERE Person_Name = 'Peter' 
+0

-1'INSERT ... WHERE'가 분명히 잘못되었습니다. –

+0

감사합니다 - 업데이트 된 버전이 작동합니다. –

+0

@ Gregg_1987 업데이트 된 버전을 테스트 했습니까? – Solace

1

가정 MySQL의를 : 당신이 그런 짓을하고 싶습니다.

insert into PERSON (hometown, person_name) 
select city, 'Peter' from COUNTRY where country_id= 2; 

그냥 ID가 고유 또는 두 개 이상의 기록으로 종료됩니다 확인하십시오

UPDATE Person, Country 
SET Person.City=Country.City 
WHERE Person.Person_Name = 'Peter' 
AND City.Country_id = 2 

http://dev.mysql.com/doc/refman/5.0/en/update.html

당신은 내가 이런 걸 권 해드립니다 것이다 specificly 삽입을 수행하는 경우 '피터'라는 이름.

+0

제공 한 코드에서 '기준'이 무엇인지 명확하게 설명해 주시겠습니까? – Solace

관련 문제