亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SELECT列表不在GROUP BY子句中,并且包含非聚合列...

SELECT列表不在GROUP BY子句中,并且包含非聚合列...

夢里花落0921 2019-08-27 17:37:11
SELECT列表不在GROUP BY子句中,并且包含非聚合列...與sql_mode = only_full_group_by不兼容AM在我的帶有WAMP服務器的Windows PC上使用MySQL 5.7.13這里我的問題是在執行此查詢時SELECT *FROM `tbl_customer_pod_uploads`WHERE `load_id` = '78' AND      `status` = 'Active'GROUP BY `proof_type`我總是得到這樣的錯誤SELECT列表的表達式#1不在GROUP BY子句中,并且包含非聚合列'returntr_prod.tbl_customer_pod_uploads.id',它在功能上不依賴于GROUP BY子句中的列; 這與sql_mode = only_full_group_by不兼容你能告訴我最好的解決方案嗎?我需要像結果一樣+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+| id | user_id | load_id | bill_id | latitude | langitude | proof_type | document_type | file_name    | is_private | status | createdon           | updatedon           |+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+|  1 |       1 | 78      | 1       | 21.1212  | 21.5454   |          1 |             1 | id_Card.docx |          0 | Active | 2017-01-27 11:30:11 | 2017-01-27 11:30:14 |+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
查看完整描述

3 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

only_full_group_by打開MySQL 模式時,這意味著在使用時將應用嚴格的ANSI SQL規則GROUP BY。關于您的查詢,這意味著如果您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上看到的絕大多數MySQL 問題已關閉嚴格模式,因此查詢正在運行,但結果不正確。在您的情況下,查詢將根本不運行,迫使您考慮您真正想要做的事情。

注意:ANSI SQL擴展了允許選擇的內容GROUP BY,還包括功能上依賴于所選列的列。功能依賴性的一個示例是按表中的主鍵列進行分組。由于保證主鍵對于每個記錄都是唯一的,因此也將確定任何其他列的值。MySQL是允許這樣做的數據庫之一(SQL Server和Oracle不支持AFAIK)。


查看完整回答
反對 回復 2019-08-27
  • 3 回答
  • 0 關注
  • 3308 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號