2016-12-14 89 views
0

我在Microsoft Sql Server中 我有三個表。插入到一個表中,從兩個表中不加入

第一張桌子只有一個字段ID_CONTACT

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

第二個表有一個字段與UNIQUE_CODE

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

我的第三個表有兩個領域:

> ID_CONTACT, UNIC_CODE 

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

這個兩個表都沒有加入。 我需要推動第三表的ID_CONTACT和UNIC_CODE隨機

我試試這個:

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

但它不工作。

你能幫我查詢嗎?

感謝

+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