这里是我的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'可能是正确的,除非你有不同的期望。 –
你想聚合数量吗? –