【发布时间】:2015-06-04 21:14:39
【问题描述】:
我做的最多的编程是shell脚本或者一些python或者perl,所以google了一下之后有了基本的了解。关于我在做什么的一点背景。我们有两个库存系统:我们的和他们的。我需要从他们的中提取信息以与我们的进行比较。
问题:我们需要 UPC 来做库存,而他们在每月库存报告中提供 SKU。
解决方案:加入 3 个表。我正在使用 phpmyadmin 在最近安装的 Debain Wheezy 上管理 mysql 后端。
第一个查询获取他们库存中的每个 SKU,将其与他们列表中的 UPC 进行比较,并且由于并非每个“UPC”实际上都是 UPC,因此将其与我们列表中的 UPC 进行比较。它看起来像这样:
SELECT TheirListings.upc, SUM(TheirInventory.quantity)
FROM TheirInventory
JOIN TheirListings
ON TheirListings.sku = TheirInventory.sku
JOIN OurListings
ON TheirListings.upc = OurListings.Upc
GROUP BY TheirListings.upc
ORDER BY TheirListings.upc
而且它似乎运作良好。我们的系统对此感到满意,这让我很高兴,因为这将手动输入减少了 96%。现在我需要得到所有这些没有捕捉到的东西:需要手动输入的 4%。为简洁起见,我们的表格缩短如下:
TheirListings TheirInventory OurListings
upc sku upc
sku quantity
我需要选择所有 SKU 和相关数量:
SELECT TheirInventory.sku, SUM(TheirInventory.quantity)
FROM TheirInventory
LEFT OUTER JOIN TheirListings
ON TheirListings.sku = TheirInventory.sku
LEFT OUTER JOIN OurListings
ON TheirListings.upc = OurListings.upc
WHERE OurListings.upc IS NULL
OR TheirListings.upc IS NULL
GROUP BY TheirInventory.sku
ORDER BY TheirInventory.sku
为了仔细检查它是否捕获了剩余部分,我为这两个查询执行了 SELECT COUNT(TheirInventory.sku) 并返回了 sku 的总数。添加我的两个查询让我比预期的多 1 个。我不确定我哪里出错了。
【问题讨论】: