基于多个列比较,将数据从一个表复制到另一个表而不重复

时间:2014-04-08 11:15:10

标签: sql-server-2005

我陷入了以下问题。这在mySQL上运行正常,但它在MSSQL-2005上出错。查询的主要目的是根据两个表中的多列比较将数据从一个表复制到另一个表而不重复。

我可以这样做来比较一列用于复制,但是当我比较多于一列进行复制时,我无法做到。

这是我的查询。

INSERT INTO eBayStockTaking (OrderLineItemID,Qty,SKU,SubscriberID,eBayUserID) 
SELECT OrderLineItemID,Qty,SKU,SubscriberID,eBayUserID 
FROM tempEBayStockTaking WHERE (OrderLineItemID,SubscriberID,eBayUserID) 
Not In (SELECT OrderLineItemID,SubscriberID,eBayUserID FROM eBayStockTaking)

注意:我经历过许多类似的问题,但都是徒劳的。

由于

1 个答案:

答案 0 :(得分:2)

而是尝试NOT EXISTS

这样的东西
INSERT INTO eBayStockTaking (OrderLineItemID,Qty,SKU,SubscriberID,eBayUserID) 
SELECT  OrderLineItemID,
        Qty,
        SKU,
        SubscriberID,
        eBayUserID 
FROM    tempEBayStockTaking t
WHERE   Not EXISTS  (
                        SELECT  *
                        FROM    eBayStockTaking e
                        WHERE   e.OrderLineItemID = t.OrderLineItemID
                        AND     e.SubscriberID = t.SubscriberID
                        AND     e.eBayUserID = t.eBayUserID) 
                    )

我知道MySQL允许Row Subqueries,但是SQL Server不允许这样做。