Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库分组错误_Php_Mysql - Fatal编程技术网

Php 数据库分组错误

Php 数据库分组错误,php,mysql,Php,Mysql,我使用Mysql已经有一段时间了,但这是我第一次遇到这个问题 问题是我有一个选择查询 SELECT transactions.inventoryid, inventoryName, inventoryBarcode, inventoryControlNumber, users.nombre, users.apellido, transactionid, transactionNumber, originalQTY,

我使用Mysql已经有一段时间了,但这是我第一次遇到这个问题

问题是我有一个选择查询

SELECT
    transactions.inventoryid,
    inventoryName,
    inventoryBarcode,
    inventoryControlNumber,
    users.nombre,
    users.apellido,
    transactionid,
    transactionNumber,
    originalQTY,
    updateQTY,
    finalQTY,
    transactionDate,
    transactionState,
    transactions.observaciones
FROM
    transactions
LEFT JOIN 
    inventory ON inventory.inventoryid = transactions.inventoryid
LEFT JOIN 
    users ON transactions.userid = users.userid
GROUP BY
    transactions.transactionNumber
ORDER BY
    transactions.inventoryid
但是GROUPBY正在从查询中删除2个值

在这种情况下,当我输出:

foreach($inventory->inventory as $values){
    $transactionid[] = $values['inventoryid'];
}
它返回:

2,3,5
如果我删除GROUP BY语句,它将返回

2,3,4,5,6
这就是我在这个特殊情况下需要的输出

问题是:

这有什么原因吗? 如果我按照一个事务进行分组,而这应该会影响查询,那么它不会只返回1个值吗


也许我想得太多了,或者在代码上花了太长时间,以至于我没有看到我的逻辑中明显的缺陷。但是如果有人能帮我一把,我将不胜感激。

在标准SQL中,您只能选择

  • 包含在
    分组依据
    子句中
  • (或)聚合“列”,如
    MAX()
    COUNT()
您需要查阅MySQL对它们用于
groupby
中未包含的列(并且不是聚合列)的解释的描述,以了解这里发生了什么


您需要更多信息吗?

如果
4
/
6
未随
GROUP BY
子句一起返回,则它们的
transactionNumber
与早期返回的行之一相同。这也意味着你的表中有3个不同的
transactionNumber
。就是这样,它们都有相同的transactionNumber,甚至是2,3,5no。他们没有。他们不能。如果您是按事物分组的,则每个事物有一行。如果此信息解决了问题,您可以将此检查为正确答案。:)