将一个表中的值插入另一个表中
问题描述:
我有以下SQL。我试图将ClientName
从Clients
插入CommisionPickups
的pName
列。我需要确保所有的值都是唯一的。将一个表中的值插入另一个表中
insert into CommisionPickups (pName)
(select ClientName
from Clients
where ClientName <> CommisionPickups.pName)
答
您不能使用<>
来检查唯一性。为确保所有名称都是唯一的,您需要确保从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)
)
答
我不能够得到您的问题,但我理解部分可能是你问的这个
如果要插入在遥远的价值PNAME不是让PNAME独一无二它会自动工作 并选择
select DISTINCT ClientName from Clients
看看这个U可以得到
答
这里是实现它的一种方法。我在SQL Server的工作,但我希望它会为任何数据库引擎
INSERT INTO CommisionPickups (pName)
SELECT DISTINCT
ClientName
FROM Client
WHERE ClientName NOT IN (SELECT DISTINCT
pName
FROM CommisionPickups)
我需要从CLIENTNAME字段从客户表,该表是不是已经在PNAME田野上CommisionPickups表复制所有工作日期。您建议的方式只会从客户表中选择唯一或不同的值。 – w3n2u 2013-04-09 10:50:20