3 回答

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
當(dāng)only_full_group_by
打開MySQL 模式時(shí),這意味著在使用時(shí)將應(yīng)用嚴(yán)格的ANSI SQL規(guī)則GROUP BY
。關(guān)于您的查詢,這意味著如果您GROUP BY
是該proof_type
列,那么您只能選擇兩件事:
該
proof_type
列或任何其他列的聚合
由其他列的“集合”,我的意思是使用聚合功能,諸如MIN()
,MAX()
或AVG()
與另一列。因此,在您的情況下,以下查詢將是有效的:
SELECT proof_type, MAX(id) AS max_id, MAX(some_col), MIN(some_other_col)FROM tbl_customer_pod_uploadsWHERE load_id = '78' AND status = 'Active'GROUP BY proof_type
GROUP BY
我在SO上看到的絕大多數(shù)MySQL 問題已關(guān)閉嚴(yán)格模式,因此查詢正在運(yùn)行,但結(jié)果不正確。在您的情況下,查詢將根本不運(yùn)行,迫使您考慮您真正想要做的事情。
注意:ANSI SQL擴(kuò)展了允許選擇的內(nèi)容GROUP BY
,還包括功能上依賴于所選列的列。功能依賴性的一個(gè)示例是按表中的主鍵列進(jìn)行分組。由于保證主鍵對(duì)于每個(gè)記錄都是唯一的,因此也將確定任何其他列的值。MySQL是允許這樣做的數(shù)據(jù)庫之一(SQL Server和Oracle不支持AFAIK)。
添加回答
舉報(bào)