首页 > 解决方案 > 在两个表之间查找丢失的数据 mysql workench

问题描述

我有一些困难来回答以下问题

1 编写一条 SQL 语句以显示所有尚未订购的商品的 SKU 和 SKU_Description。

SELECT SKU,SKU_DESCRIPTION 
FROM SKU_DATA
INNER JOIN ORDER_ITEM
ON SKU_DATA.SKU =ORDER_ITEM.SKU;

我不知道如何编写条件来比较和显示 SKU_Data 中存在但 order_item 中不存在的 SKU...

这里有不同的桌子

Inventory (WarehouseID,SKU,SKU_Description,QuantityOnHand,QuantityOnOrder)

Order_Item(OrderNumber,SKU,Quantity,Price,ExtendedPrice)

Retail_order(OrderNumber,StoreNumber,StoreZip,OrderMonth,OrderYear,OrderTotal)

SKU_Data(SKU,SKU_Description,Department,Buyer)

Warehouse(WarehouseCity,WarehouseState,Manager,SquareFeet)

谢谢

标签: sqldataframeuitableviewdatatablesmysql-workbench

解决方案


不太确定。但从您的查询来看,您似乎需要not exists如下:

SELECT SKU,SKU_DESCRIPTION 
FROM SKU_DATA
WHERE NOT EXISTS
      (SELECT 1 FROM ORDER_ITEM OI
         JOIN RETAIL_ORDER RO ON OI.ORDERNUMBER = RO.ORDERNUMBER
        WHERE SKU_DATA.SKU =OI.SKU
          AND RO.ORDERYEAR >= 2012);

推荐阅读