mysql - 连接两个表,并提取具有多个条件(多个 sku)的最低价格
问题描述
我几乎完成了我的系统,直到我注意到一个产品与另一个供应商有不同的 sku(我在表中有来自 7 个不同供应商的超过 15,000 种产品,table_prices
假设他们都必须处理相同的SKU
事情(但他们没有),我想出了添加sku2
解决,但我陷入了一个黑洞。
现在利用我可以得到你的帮助,如果sku,sku2,upc或ean匹配table_prices
,我希望能够在表中搜索最低价格,这样我不会有大问题如果供应商决定做坏事,因为我会有更多的信息来联系。 table_products
sku
我留下了我工作的链接......我寻找 skutable_products
并且我得到了最低价格table_prices
http://sqlfiddle.com/#!9/47809f/1/0
我希望在产品 1 上获得 90 美元
SELECT p.*, x.supplier AS supplier, x.price , x.quantity AS quantity
FROM table_prices x
JOIN
(SELECT sku,
MIN(price) price
FROM table_prices
WHERE quantity != 0 AND active = 1
GROUP BY sku) y
ON y.sku = x.sku
AND y.price = x.price
JOIN table_products p
WHERE p.sku = x.sku
ORDER BY category, price
解决方案
这似乎给出了预期的结果:
SELECT p.*, x.supplier AS supplier, x.price , x.quantity AS quantity
FROM table_prices x
JOIN table_products p ON (p.sku = x.sku OR p.sku2 = x.sku OR p.upc = x.upc OR p.ean = x.ean)
WHERE x.price = (SELECT MIN(x2.price) FROM table_prices x2 WHERE (p.sku = x2.sku OR p.sku2 = x2.sku OR p.upc = x2.upc OR p.ean = x2.ean))
ORDER BY category, price
推荐阅读
- firebase - snapshotListener 的第一个查询快照
- apache - Kerberos + Apache 反向代理 Windows
- c# - 在我的 ARM 模板中添加 azure 功能需要什么?
- laravel - 如何在laravel中使用护照检索访问令牌?
- reactjs - 如何在加载大 page-data.json 时在 Gatsby 网站上显示加载器?
- fossil - 追溯性地将提交与票证相关联
- android - 隐藏时将约束布局中的一个视图的属性复制到另一个视图
- python - 如果存在,如何为每行返回最低的非 nan 值
- c# - 使用c#将科学记数法转换为长数?
- asp.net-mvc - MVC + API + 身份验证服务器项目的正确结构是什么