2016-07-28 63 views
-1

我有兩個表的訂單和ORDER_ITEMSSQL命令和ORDER_ITEMS表,但顯示的運費只有一次

訂單表

 
+----+-----------------------+ 
| id | total_shipping_charge | 
+----+-----------------------+ 
| 1 | 60     | 
| 2 | 60     | 
| 3 | 60     | 
| 4 | 60     | 
| 5 | 60     | 
| 6 | 0      | 
| 7 | 60     | 
| 8 | 0      | 
| 9 | 60     | 
| 10 | 60     | 
+----+-----------------------+ 

ORDER_ITEMS表

 
+----+--------------------------+-----+-------+- 
| id | order_id | p_name  | qty | price | 
+----+----------+---------------+-----+-------+--------------------------------- 
| 1 |  1 | Product 1  | 1 | 699 | 
| 2 |  2 | Product 2  | 1 | 349 | 
| 3 |  3 | Product 3  | 1 | 199 | 
| 4 |  4 | Product x  | 2 | 299 | 
| 5 |  4 | Product y  | 2 | 299 | 
| 6 |  4 | Product z  | 2 | 299 | 
| 7 |  5 | Product 7  | 2 | 299 | 
| 8 |  6 | Product 8  | 1 | 1299 | 
| 9 |  7 | Product 9  | 1 | 199 | 
| 10 |  8 | Product 10 | 6 | 349 | 
+----+----------+--------------------------------------------------------------- 

現在ORDER_ID 4有多個產品在一個單一的順序,當我加入兩個表,我得到重複運輸費。我只想要第一次生產的運費。

我跑這個查詢

SELECT 
    o1.id, 
    o1.total_shipping_charge, 
    o2.order_id, 
    o2.p_name 
FROM 
    orders o1 
INNER JOIN order_items o2 ON o1.id = o2.order_id 

,但它顯示了運輸成本重複行,它應該顯示僅第一行。

 

| id | total_shipping_charge | order_id | p_name 
+----+-----------------------+----------+---------+ 
| 1 | 60     |  1 | Product 1 
| 2 | 60     |  2 | Product 2 
| 3 | 60     |  3 | Product 3 
| 4 | 60     |  4 | Product x 
| 5 | 60     |  4 | Product y 
| 6 | 60     |  4 | Product z 
| 7 | 0      |  6 | Product 7 
| 8 | 60     |  7 | Product 8 
| 9 | 0      |  8 | Product 9 

回答

0

嘗試

SELECT o1.id,o1.total_shipping_charge, distinct o2.order_id,o2.p_name FROM orders o1 INNER JOIN order_items o2 ON o1.id=o2.order_id 
+0

嗨OscarAkaElvism我也曾嘗試DISTINCT,但它顯示與此錯誤。分析過程中發現9個錯誤。 表達預期。 (位置39附近「不同」) 無法識別的關鍵字。 (在位置39附近「不同」) 意外的令牌。 (在位置48處的「o2」附近) 意外的令牌。 (在位置50附近的「。」) 意外的令牌。 (在位置51的「order_id」附近) 意外的令牌。 (靠近「,」在位置59) 意外的令牌。 (在位置60處的「o2」附近) 意外的令牌。 (位置62附近的「。」) 意外的標記。 (位置63附近的「p_name」) – Mayur

+0

這裏是小提琴http://sqlfiddle.com/#!9/5def1/1/0 – Mayur

1

從SQL Server的角度來看,你所要求的是不可能的。你從報告的角度提出了一些不同的觀點。您可以提取這些數據,並在報告中以您想要的方式顯示,但無法以這種方式提取數據。

不確定MySql的行爲如何。