2011-03-10 3 views
0

이상한 삽입 문제 : 그것은 기본적으로 모두 열이 전체 테이블에 걸쳐 preeent하는 동안, 그들은 순차적으로 작성되어 있다는 사실을 제외하고 작동나는 다음과 같은 코드와 함께 테이블을 걸었습니다

create table temp 
(pnum integer, 
pnam varchar(30)); 

insert into temp(pnum) 
select player_number 
from players; 

insert into temp(pnam) 
select player_name 
from positions; 

. 두 번째 선택의 모든 데이터가 첫 번째 선택에서 동일한 줄에있는 데이터 뒤에 나타나기를 원합니다. 현재 pnam 열에 빈 줄이 생기고 (pnum이 멋지게 채워지는 반면) pnum 열에 빈 줄이 생깁니다 (pnam은 멋지게 채워집니다). 누구든지이 문제를 해결하는 방법을 알고있는 경우 신속한 회신을 믿을 수 없을만큼 감사하게 될 것입니다!

+0

에서 읽을 수 있습니다. 'players'는 'positions'과 어떤 관련이 있습니까? –

답변

2

예 - 문제는 2 개의 이산적이고 분리 된 삽입을 수행하기 때문에 SQL은 숫자와 이름이 일치하기를 원한다는 것을 알지 못합니다. Select 문을 하나로 다시 작성해야합니다.

플레이어와 위치 테이블에 모두 player_number라는 필드가 있다고 가정하면 두 테이블을 함께 묶을 수 있습니다 (그렇지 않은 경우 두 테이블에서 데이터를 함께 묶어 사용하는 고유 한 필드를 선택합니다).

insert into temp(pnum,pnam) 
select player_number,player_name 
from players inner join positions on players.player_number = positions.player_number 

유의할 것들 :.

1 호선 - 우리가 지금 동시에 두 컬럼에 삽입하는 방법을 참조 이것은 당신이

라인이 찾고있는 데이터 레이아웃을 줄 것이다 - 우리가 두 비트를 어떻게 선택하는지 보아라. 삽입 할 데이터

3 행 - 두 테이블을 함께 결합합니다 (양쪽에서 player_number columnn 사용). 2 번 줄에서 각각 하나의 열을 선택해야하기 때문에 함께 가입해야합니다.

희망이 있습니다. 그렇지 않다면 소리 치십시오. 또한, inserting rows using INSERT and SELECTusing inner joins