我在 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
不起作用。如果我能以某种方式从外部查询中获取有问题的 SKU,那么上面的 NOT IN ..
就会起作用。我怎样才能让它正常工作?谢谢!
最佳答案
你为什么不做一些类似的事情
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 的所有记录。如果不匹配,则颜色为 NULL。
我希望 mySQL 具有与右连接相同的语法,因为这是 MSSQL 语法。
关于mysql - 从项目主表中不存在字段的表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14509019/