将值从一个表插入另一个表

时间:2013-04-09 10:25:00

标签: sql sql-server-2008

我有以下SQL。我正在尝试将ClientName中的Clients插入pName中的CommisionPickups列。我需要确保所有值都是唯一的。

insert into CommisionPickups (pName) 
   (select ClientName 
    from Clients  
    where ClientName <> CommisionPickups.pName)

3 个答案:

答案 0 :(得分:5)

您无法使用<>来检查唯一性。要确保所有名称都是唯一的,您需要确保从CommisionPickups中选择唯一的名称,并且Clients中不存在您插入的名称。对NOT EXISTS使用CommisionPickupsDISTINCT使用Clients,如下所示:

insert into CommisionPickups (pName) 
(select DISTINCT c.ClientName from Clients c
where NOT EXISTS (SELECT 1 FROM CommisionPickups cp
                  WHERE c.ClientName = cp.pName)
)

答案 1 :(得分:1)

我无法得到你的问题,但我理解部分可能是你要求这个

如果要在pname中插入远程值而不是将pname作为唯一值插入,它将自动运行 并选择

select  DISTINCT ClientName from Clients

看看你能得到的这个

http://www.w3schools.com/sql/sql_select_into.asp

答案 2 :(得分:1)

这是实现它的一种方法。我在SQL Server中工作,但我希望它适用于任何数据库引擎

    INSERT  INTO CommisionPickups ( pName )
    SELECT DISTINCT
            ClientName
    FROM    Client
    WHERE   ClientName NOT IN ( SELECT DISTINCT
                                        pName
                                FROM    CommisionPickups )