gpt4 book ai didi

mysql - 不确定我在 sql join 上哪里出错了

转载 作者:行者123 更新时间:2023-11-30 22:42:46 25 4
gpt4 key购买 nike

我做的最多的编程是shell脚本或者一些python或者perl,所以在谷歌搜索了一下之后我有了一个基本的了解。关于我在做什么的一些背景。我们有两个库存系统:我们的和他们的。我需要从他们的信息中提取信息以与我们的信息进行比较。

问题:我们需要 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 个。我不确定哪里出错了。

最佳答案

我猜的第一件事是他们没有在相同的数据集上工作。如果您几天前运行了第一个,也许某些数据已更改导致它出现在第二个查询中?

如果没有,我会做的是

SELECT SKU
FROM TheirInventory
WHERE SKU IN (<1st query>)
AND SKU IN (<2nd query>)

这会告诉您两者都显示了什么,您可以从那里进行诊断。

关于mysql - 不确定我在 sql join 上哪里出错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30654298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com