2016-12-14 1 views
0

나는 Microsoft SQL Server에 나는 세 개의 테이블이 있습니다.결합하지 않고 두 테이블에서 하나의 테이블에 삽입

첫 번째 테이블의 필드는 ID_CONTACT입니다.

> ID_CONTACT, UNIC_CODE 

CREATE TABLE UNIC_CODE_RECETTE(
[ID_CONTACT] [int] NOT NULL PRIMARY KEY, 
[UNIC_CODE] varchar(10) 
) 

이 두 테이블에 가입하지 않은 :

CREATE TABLE USERS_CONTACT(
[ID_CONTACT] [int] NOT NULL PRIMARY KEY 
) 

두 번째 표는 내가 두 개의 필드와 세 번째 테이블이 UNIQUE_CODE

CREATE TABLE TMP_UNIC_CODE_RECETTE(
[UNIC_CODE] varchar(10) 
) 

과 필드가 있습니다.

INSERT INTO UNIC_CODE_RECETTE 
(ID_CONTACT, UNIC_CODE) 
SELECT ID, (SELECT REAC FROM TMP_UNIC_CODE_RECETTE) 
FROM USERS_CONTACT 

을하지만 그것은 작동하지 않습니다 은 내가 ID_CONTACT과 UNIC_CODE 무작위

나는이 시도가 세 번째 테이블에 밀어해야합니다.

검색어를 알려 주시겠습니까?

감사

+1

"작동하지 않음"은 다른 사람에게 아무런 의미가 없습니다. 우리는 당신이 무엇을하려고하는지 또는 당신이 기대하는대로 작동하지 않는지 알지 못합니다. 테이블 구조, 샘플 데이터 및 원하는 결과를 게시하는 방법은 어떻습니까? 여기서 시작하는 것이 좋습니다. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

답변

1

당신은 하위 쿼리에서 당신이 그것을 사용하려고하는 방법을 하나 개 이상의 값을 반환 할 수 없습니다. 그래도 top 1을 사용하면 order by newid() 일 경우 겉으로보기에는 random value이됩니다.

insert into unic_code_recette (id_contact, unic_code) 
select 
    uc.id_contact 
    , unic_code = (
    select top 1 
     unic_code 
     from tmp_unic_code_recette 
     order by newid() 
    ) 
    from users_contact uc 
관련 문제