如果mysql中的其他行中存在相同的数据,则显示空白值

时间:2017-09-21 15:23:50

标签: mysql select

我有一张表格,其中包含我的客户列表'订单,我想显示特定客户的订单。客户可以不时订购相同的商品:

order_tb:

orderid  customerid  itemid    price   quantity   orderdate
   1           2        4      50.00      3       2017-08-02
   1           2       10     150.00      2       2017-08-02
   2           2        6      70.00      6       2017-08-05
   2           2        2      30.00      5       2017-08-05
   2           2        5      38.00      7       2017-08-05
   5           2       10     150.00      3       2017-09-20
   5           2        6      70.00      2       2017-09-20
   2           2        4      50.00      4       2017-09-20

现在我使用以下select语句。这个陈述给我的结果没有错误,但问题是我不知道如何跳过显示相同的项目而不是显示空白区域?

   SELECT p.itemname, tb.price, tb.quantity, tb.orderdate 
   FROM order_tb tb
   LEFT JOIN product p ON tb.itemid = p.id
   WHERE tb.customerid = 2

查询输出为:

   itemname     price   quantity   orderdate
   football     50.00      3       2017-08-02
   football     50.00      4       2017-09-20
    helmet     150.00      2       2017-08-02
    helmet     150.00      3       2017-09-20
    bulb        70.00      6       2017-08-05
    bulb        70.00      2       2017-09-20
    bucket      30.00      5       2017-08-05
    watch       38.00      7       2017-08-05

我的预期输出:

   itemname     price   quantity   orderdate
   football     50.00      3       2017-08-02
                50.00      4       2017-09-20
    helmet     150.00      2       2017-08-02
               150.00      3       2017-09-20
    bulb        70.00      6       2017-08-05
                70.00      2       2017-09-20
    bucket      30.00      5       2017-08-05
    watch       38.00      7       2017-08-05

1 个答案:

答案 0 :(得分:0)

虽然我可以看到你来自哪里,但这通常是在表示层中完成的(无论是报告工具还是使用数据库的应用程序)

在查询本身中尝试执行此操作的成本要低得多,后者依赖于子查询或模拟LEAD / LAG函数(因为您使用的是MySQL)