Php 数据库分组错误
我使用Mysql已经有一段时间了,但这是我第一次遇到这个问题 问题是我有一个选择查询Php 数据库分组错误,php,mysql,Php,Mysql,我使用Mysql已经有一段时间了,但这是我第一次遇到这个问题 问题是我有一个选择查询 SELECT transactions.inventoryid, inventoryName, inventoryBarcode, inventoryControlNumber, users.nombre, users.apellido, transactionid, transactionNumber, originalQTY,
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()
groupby
中未包含的列(并且不是聚合列)的解释的描述,以了解这里发生了什么
您需要更多信息吗?如果
4
/6
未随GROUP BY
子句一起返回,则它们的transactionNumber
与早期返回的行之一相同。这也意味着你的表中有3个不同的transactionNumber
。就是这样,它们都有相同的transactionNumber,甚至是2,3,5no。他们没有。他们不能。如果您是按事物分组的,则每个事物有一行。如果此信息解决了问题,您可以将此检查为正确答案。:)