0

特定の SKU に関連付けられた SKU とすべての色を含む MSSQL のアイテム マスター テーブルがあります。

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

次に、同様の構造を持つ MySql テーブルがありますが、アイテム マスター テーブルに存在しない色 (SKU ごと) があり、それらを削除する必要があります。
これが私がこれまでに持っているものです(2つのテーブルをリンクするために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です。

これはMSSQL構文であるため、mySQLが右結合と同じ構文を持っていることを願っています。

于 2013-01-24T19:23:33.353 に答える