2017-09-21 1 views
0

私の顧客の注文のリストを含むテーブルがあり、特定の顧客の注文を表示したい。お客様は、随時、同じアイテムを注文することができます。mysqlの他の行に同じデータが存在する場合は空白値を表示

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 
+0

https://stackoverflow.com/q/5668886/6124528 – Manav

答えて

0

を見ることができる一方で層(データベースを使用するレポートツールまたはアプリケーションであるかどうか)

サブクエリに依存するかLEAD/LAG関数をエミュレートするクエリ自体(MySQLを使用しているような)でクエリを実行しようとするよりも処理コストがはるかに安い

関連する問題