2014-11-27 2 views
1

두 개의 테이블이 있습니다. 테이블 'locations'는 foreign-key-location_id를 가진 테이블 'resources'와 관련된 일대 다/일입니다. 이 같은 것한 테이블의 Foreach ID, 다른 테이블의 행 삽입

locations -> id | location 
resources -> id | location_id | name | value 

'위치'에 많은 레코드가 있습니다. 이제 '위치'에 각각의 기존 'locations.id'를 추가하려고합니다. '리소스'의 레코드에는 이름과 값의 기본값과 물론 location_id가 포함됩니다.

이 sql 쿼리 dosent가 'resoruces.name'및 'resources.value'에 대한 값을 설정 했으므로 부분적으로 원하는 결과를 생성하는 아래 쿼리를 시도했습니다. 그들은 각각 "표준"과 "1"이어야합니다.

INSERT INTO service_categories(location_id) SELECT id FROM locations; 

이 필드에 값을 추가하여 쿼리를 구성 할 수 없습니다. 이 작업을 수행하는 방법? 테이블 resources 이미하지 않는 경우 존재

id | location_id | name  | value 
------------------------------------- 
    1 | 1   | Standard | 1 
    2 | 2   | Standard | 1 
    3 | 3   | Standard | 1 
    4 | 4   | Standard | 1 
    5 | 5   | Standard | 1 
    6 | 6   | Standard | 1 
    7 | 7   | Standard | 1 
    8 | 8   | Standard | 1 
.... 

답변

4

이 작동합니다 : 테이블이하는

SELECT 
    location_id as id, 
    location_id, 
    'Standard' as name, 
    1 as value 
INTO resources 
FROM locations 

경우 이미 다음 써서 존재 내가 원하는 결과는 다음과 같은 것입니다 대신

INSERT INTO resources (id, location_id, name, value) 
SELECT 
    location_id as id, 
    location_id, 
    'Standard' as name, 
    1 as value 
FROM locations 

문자열 리터럴은 사용중인 RDBMS에 따라 다릅니다. 예를 들어, MySQL은 작은 따옴표가 아닌 backticks를 사용합니다.

+1

고맙습니다! 쿼리를 추가하면 완벽하게 작동합니다! 리소스에 삽입 (location_id, name, value) location_id로 id를 선택하고 이름으로 "표준"을 입력하고 id가없는 위치에서 값을 1로 설정합니다 (리소스에서 location_id 선택) – Ivo

관련 문제