首页 > 解决方案 > 连接两个表,并提取具有多个条件(多个 sku)的最低价格

问题描述

我几乎完成了我的系统,直到我注意到一个产品与另一个供应商有不同的 sku(我在表中有来自 7 个不同供应商的超过 15,000 种产品,table_prices假设他们都必须处理相同的SKU事情(但他们没有),我想出了添加sku2解决,但我陷入了一个黑洞。

现在利用我可以得到你的帮助,如果sku,sku2,upc或ean匹配table_prices,我希望能够在表中搜索最低价格,这样我不会有大问题如果供应商决定做坏事,因为我会有更多的信息来联系。 table_productssku

我留下了我工作的链接......我寻找 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

标签: mysqlselect

解决方案


这似乎给出了预期的结果:

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 

推荐阅读