1

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

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

3 回答 3

5

您不能用于<>检查唯一性。为确保所有名称都是唯一的,您需要确保从 中选择唯一名称CommisionPickups,并且您插入的名称不存在于 中Clients。使用NOT EXISTSforCommisionPickupsDISTINCTfor 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)
)
于 2013-04-09T10:29:17.770 回答
1

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

如果您想在 pname 中插入较远的值而不是使 pname 唯一,它将自动工作并选择

select  DISTINCT ClientName from Clients

看看这个你能得到

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

于 2013-04-09T10:34:25.597 回答
1

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

    INSERT  INTO CommisionPickups ( pName )
    SELECT DISTINCT
            ClientName
    FROM    Client
    WHERE   ClientName NOT IN ( SELECT DISTINCT
                                        pName
                                FROM    CommisionPickups )
于 2013-04-09T11:05:44.930 回答