mysql - 从项目主表中不存在字段的表中选择

标签 mysql sql sql-server tsql

我在 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/

相关文章:

.net - 如何在不打开数据库的情况下测试SqlServer连接

sql - SOLID 存储过程和函数

sql - Linq 版 SQL "IN"语句

sql-server - MS SQL Server View 不允许 CONCAT

sql - Alter语句与外键冲突,但ID在两个表中都存在

PHP/MySQL 注册表未检测密码

java - 使用经纬度返回用户位置可用的最近地点?

php - PHP中将多维数组中的数据插入数据库

php - 什么会导致 变成 unicode 字符?

mysql - 使用多个条件连接 MySQL 上的两个表