2013-04-09 194 views
1

我有以下SQL。我試圖將ClientNameClients插入CommisionPickupspName列。我需要確保所有的值都是唯一的。將一個表中的值插入另一個表中

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

回答

5

您不能使用<>來檢查唯一性。爲確保所有名稱都是唯一的,您需要確保從CommisionPickups中選擇唯一名稱,並且您插入的名稱不存在於Clients中。使用NOT EXISTSCommisionPickups,並DISTINCTClients,像這樣:

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

我不能夠得到您的問題,但我理解部分可能是你問的這個

如果要插入在遙遠的價值PNAME不是讓PNAME獨一無二它會自動工作 並選擇

select DISTINCT ClientName from Clients 

看看這個U可以得到

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

+0

我需要從CLIENTNAME字段從客戶表,該表是不是已經在PNAME田野上CommisionPickups表複製所有工作日期。您建議的方式只會從客戶表中選擇唯一或不同的值。 – w3n2u 2013-04-09 10:50:20

1

這裏是實現它的一種方法。我在SQL Server的工作,但我希望它會爲任何數據庫引擎

INSERT INTO CommisionPickups (pName) 
    SELECT DISTINCT 
      ClientName 
    FROM Client 
    WHERE ClientName NOT IN (SELECT DISTINCT 
             pName 
           FROM CommisionPickups) 
相關問題