2016-11-21 62 views
0

這裏是我的MySQL查詢:接收在MySQL Select語句所有條目(甚至是 '重複'

$query = "SELECT 
    ws_inventory.id, 
    ws_inventory.SKU AS inventory_sku, 
    ws_inventory.Quantity AS inventory_quantity, 
    ws_mastersku.SKU_1, 
    ws_mastersku.SKU_2, 
    ws_mastersku.SKU_4, 
    ws_mastersku.SKU_3, 
    ws_mastersku.MultSKU, 
    ws_mastersku.QtySKU, 
    ws_mastersku.AltSKU, 
    ws_mastersku.SKU, 
    ws_sold.SKU AS sold_sku, 
    ws_sold.Quantity AS sold_quantity 
FROM ws_sold 
    LEFT OUTER JOIN ws_mastersku 
    ON ws_sold.sku = ws_mastersku.SKU 
    LEFT OUTER JOIN ws_inventory 
    ON ws_mastersku.SKU_1 = ws_inventory.SKU 
    OR ws_mastersku.AltSKU = ws_inventory.SKU 
GROUP BY ws_sold.sku;"; 

但它只是返回WS16的第一個實例

enter image description here

即使我的表WS16有兩個條目

enter image description here

如何修改我的查詢,以便它將選擇所有行? (在我的最後一張照片是省略行ID#4)

新的選擇查詢應該像(正如你可以在這裏看到第四列)

1 WS16 91 (null) (null) (null) (null) 0 4 WS16 WS16X4-2 WS16X4-2 2 
2 WS3  97 (null) (null) (null) (null) 0 2 WS3  WS3X2-4 WS3X2-4 1 
3 WS6  95 (null) (null) (null) (null) 0 4 WS6  WS6X4-16 WS6X4-16  1 
4 WS16 75 (null) (null) (null) (null) 0 4 WS16 WS16X4-2 WS16X4-2 4 

每Keith和Tim的一種反應,我已經試過沒有GROUP BY條款查詢,這裏是我的結果

enter image description here

這是朝着正確方向邁出的一步,但inventory_quantity是錯的..

這是因爲在我的PHP腳本我做

$newQuantity = $rs['inventory_quantity'] - ($rs['sold_quantity'] * $rs['QtySKU']); 

和腳本在我while循環輸出

UPDATE ws_inventory SET Quantity = 91 WHERE SKU = 'WS16' 

其次

UPDATE ws_inventory SET Quantity = 83 WHERE SKU = 'WS16' 

問題是因爲在開始查詢時採取inventory_quantity。 第一個陳述的數量是-8(開始99),第二個陳述是-16(開始99)。需要知道找出一種方法來獲取它,以便在這種情況下語句將與eachother一起使用,並執行99 - 8 - 16 = 75而不是僅覆蓋結果。

+1

你真的想要什麼輸出?您當前的查詢與使用「GROUP BY」的方式有關。 –

+1

否...更新您的問題並向我們顯示您想要的輸出。基思的建議下面完全放棄'GROUP BY'可能是正確的,除非你有不同的期望。 –

+0

你想聚合數量嗎? –

回答

0

嘗試刪除group by子句。你沒有聚合函數的分組,所以沒有必要使用group by子句。

請參閱https://www.google.com.au/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=group%20by%20aggregate%20functions瞭解更多按功能分組的細節。

+0

我會upvoted如果你發佈了一個直接鏈接到mysql頁面,並引用了它。 – e4c5

+0

謝謝,這有幫助。進行之前的測試時,我一定把它留在那裏。我已經用這個結果更新了我的問題。 – bbruman

+0

答案的確是問題標題「接收所有條目(甚至是MySQL選擇語句中的」重複「)。分組依據導致結果被分組! –