我有以下SQL。我正在尝试将ClientName
中的Clients
插入pName
中的CommisionPickups
列。我需要确保所有值都是唯一的。
insert into CommisionPickups (pName)
(select ClientName
from Clients
where ClientName <> CommisionPickups.pName)
答案 0 :(得分:5)
您无法使用<>
来检查唯一性。要确保所有名称都是唯一的,您需要确保从CommisionPickups
中选择唯一的名称,并且Clients
中不存在您插入的名称。对NOT EXISTS
使用CommisionPickups
,DISTINCT
使用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
看看你能得到的这个
答案 2 :(得分:1)
这是实现它的一种方法。我在SQL Server中工作,但我希望它适用于任何数据库引擎
INSERT INTO CommisionPickups ( pName )
SELECT DISTINCT
ClientName
FROM Client
WHERE ClientName NOT IN ( SELECT DISTINCT
pName
FROM CommisionPickups )