我陷入了以下问题。这在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)
注意:我经历过许多类似的问题,但都是徒劳的。
由于
答案 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不允许这样做。