接收所有条目(甚至是MySQL Select Statement中的'duplicates'

时间:2016-11-21 05:12:46

标签: mysql

这是我的MySQL查询:

11

但它只返回WS16的第一个实例

enter image description here

即使我的表有两个WS16条目

enter image description here

如何修改我的查询以便选择所有行? (在我的上一张照片中,它省略了行号#4)

新的选择查询应如下所示(您可以在此处看到第四列)

$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;";

Per Keith和Tim的善意回答,我尝试了没有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 子句的查询,这是我的结果

enter image description here

这是向正确方向迈出的一步,但GROUP BY是错误的。

这是因为在我的PHP脚本中我正在做

inventory_quantity

我的while循环中脚本的输出是

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

接着是

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

问题是因为UPDATE ws_inventory SET Quantity = 83 WHERE SKU = 'WS16' 在查询开始时被采用。 第一个语句的数量是-8(开始99),第二个语句是-16(开始99)。需要知道找出一种方法来获取它,以便在这种情况下语句将与彼此一起工作,并执行inventory_quantity而不是仅覆盖结果..

1 个答案:

答案 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