這裏是我的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的第一個實例
即使我的表WS16有兩個條目
如何修改我的查詢,以便它將選擇所有行? (在我的最後一張照片是省略行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
條款查詢,這裏是我的結果
這是朝着正確方向邁出的一步,但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
而不是僅覆蓋結果。
你真的想要什麼輸出?您當前的查詢與使用「GROUP BY」的方式有關。 –
否...更新您的問題並向我們顯示您想要的輸出。基思的建議下面完全放棄'GROUP BY'可能是正確的,除非你有不同的期望。 –
你想聚合數量嗎? –