我在我的數據庫中執行這2個查詢。第一個返回1條記錄,第二個返回2241條(如我所料)。我用兩種不同的方式詢問同樣的事情。在第一個中,我使用DISTINCT
,在第二個中我使用「GROUP BY」。這不一樣嗎?與DISTINCT和GROUP BY不同的結果
/*returns 1 record*/
SELECT DISTINCT INVENTORY.location, INVENTORY.label, INVENTORY.version, SUM(INVENTORY.quantity) AS total, LABELS.description, LABELS.customer , LABELS.label
FROM INVENTORY
INNER JOIN LABELS
ON INVENTORY.label = LABELS.label
AND INVENTORY.version = LABELS.version
WHERE INVENTORY.location = 1
/*returns 2241 record*/
SELECT Inventory.location, Inventory.label, Inventory.version, SUM(INVENTORY.quantity) AS total, Labels.description, Labels.customer, LABELS.label
FROM Inventory
INNER JOIN LABELS
ON Inventory.label = Labels.label
AND Inventory.version = Labels.version
WHERE Inventory.location = 1
GROUP BY Inventory.label, Inventory.Version
實際上:兩者都是無效的SQL第一個完全缺少所需的「group by」,第二個沒有對所有非聚合列進行分組。我很驚訝,SQLite甚至接受這一點。 –
我沒有得到任何錯誤...! – yaylitzis
@a_horse_with_no_name自從DISTINCT需要GROUP BY時? – m0skit0