2016-12-14 92 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