0

我在 MSSQL 中有一个项目主表,其中包含与给定 SKU 关联的 SKU 和所有颜色:

SKU | Color  
-----------
100 | BLK
100 | GRN
101 | RED
101 | BLU
101 | TAN

然后我有一个结构相似的 MySql 表,但是它有项目主表中不存在的颜色(按 SKU),我需要删除它们。
这是我到目前为止所拥有的(注意我使用 OPENQUERY 来链接这两个表):

SELECT * FROM OPENQUERY(WEB, '
     SELECT SKU, `Filename`, Color
     FROM IP24_Import_Images
') as B
INNER JOIN sap.ItemMasterSkuColor IM
ON B.SKU = IM.Sku
WHERE B.Color NOT IN (
    SELECT Color FROM sap.Item_Master_StyleColor
    WHERE Sku ....  

我正在尝试先选择它们。然后我应该能够弄清楚如何从那里删除它们。但是我最终被困在那里..
显然WHERE B.Color != IM.Color行不通。NOT IN ..如果我能以某种方式从外部查询中获取有问题的 SKU,我上面的方法会起作用。我怎样才能让它正常工作?谢谢!

4

1 回答 1

1

你为什么不做类似的事情

SELECT * 
FROM IP24_Import_Images B
LEFT JOIN sap.ItemMasterSkuColor IM
ON B.SKU = IM.Style AND B.Color = IM.Color
WHERE IM.Color IS NULL

应该给你来自 IM 的所有记录,如果 B.color 不匹配,则为 NULL。

我希望 mySQL 具有与右连接相同的语法,因为这是 MSSQL 语法。

于 2013-01-24T19:23:33.353 回答