创建一个mySQL视图,其中每一行都是同一行中特定列的值

时间:2014-08-08 16:34:36

标签: mysql

我有一个包含产品价格信息的产品表。而不是每行包含特定产品的1个价格,每行包含特定产品和3列价格,用于该产品的不同数量。

我试图想出一种方法来创建一个视图,实质上将这3列拆分为自己的行,以及每个其他产品信息的列。

对不起,我知道这听起来有点令人困惑,所以这里是我开始的sqlfiddle:http://sqlfiddle.com/#!2/f4443/1

当然,视图声明不正确,但如果你一直向下滚动,你可以在评论中看到我希望视图的外观。

谢谢!

1 个答案:

答案 0 :(得分:0)

在MySQL中,您可以使用union all

执行此操作
create view v_products as
    select product_id, p.type,
           CONCAT(p.type, '|', p.size, '|', p.color, '|', '|price_qty_50') AS full_product_name,
           price_qty_50 as price
    from product p
    union all
    select product_id, p.type,
           CONCAT(p.type, '|', p.size, '|', p.color, '|', '|price_qty_50') AS full_product_name,
           price_qty_100
    from product p
    union all
    select product_id, p.type,
           CONCAT(p.type, '|', p.size, '|', p.color, '|', '|price_qty_50') AS full_product_name,
           price_qty_250
    from product p;