mySQL视图显示distict值和它下面的所有相关行

时间:2015-07-26 23:01:38

标签: mysql join subquery

我正在使用mySQL。我有一张桌子,每天都会根据我们的sku更新。 sku具有重复值,因为存在与之关联的定价层。我需要创建一个视图,它将显示所有行,但只有1个sku和相关的sku行,因此我可以每天导出以进行magento更新。 Magento在导入过程中不允许重复sku。这是一个例子:

sku _tier_price_qty _tier_price_price 013964223286 10 1                 50 1                 100 1 9332153001025 5 1                 25 1                 50 1 9332153001032 5 1                 25 1                 50 1 9332153001063 5 1                 25 1                 50 1 9332153001049 5 1                 25 1                 50 1 640420002569 5 1                 25 1                 50 1 640420002538 5 1                 25 1                 50 1 640420002521 5 1                 25 1                 50 1

2 个答案:

答案 0 :(得分:0)

虽然在报表应用程序中处理此类格式可能更好,但此查询应该执行您想要的操作:

select 
    case when x.tier_qty is not null then t.sku else null end tier_qty, 
    t.tier_qty, 
    t.tier_price
from t
left join (
    select sku, min(tier_qty) tier_qty
    from t
    group by sku
) x on t.sku = x.sku and t.tier_qty = x.tier_qty
order by t.sku, t.tier_qty;

http://www.sqlfiddle.com/#!9/3314bd/1

答案 1 :(得分:0)

你能试试吗?

select case when (select MIN(tier_qty) from products where sku = o.sku) = tier_qty
            then sku
            else null,
       tier_qty,
       tier_price
from products o
order by sku, tier_qty