我一直在使用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
但GROUP BY是消除從查詢2倍的值。
在這種情況下,當我輸出:
foreach($inventory->inventory as $values){
$transactionid[] = $values['inventoryid'];
}
它返回:
2,3,5
如果我消除GROUP BY語句返回
2,3,4,5,6
哪個是輸出I需要這種特殊情況。
現在的問題是:
是否有這種情況發生的原因? 如果我是通過事務進行分組的,並且應該會影響查詢,那麼它不會只返回1個值嗎?
也許我在想這個問題,或者在代碼上工作太久,我沒有看到我邏輯中的明顯缺陷。但如果有人可以借我一手,我會很感激。
如果'4' /'6'沒有以GROUP BY子句返回,那麼它們與返回的早期行之一具有相同的'transactionNumber'。這也意味着你的表中有3個不同的'transactionNumber'。 – Sean
就是這樣,他們都有相同的交易編號,甚至2,3,5 – user3701157
沒有。他們沒有。他們不能。如果你按照某種東西分組,你會得到一行。 –