我試圖幫助某人在他的代碼上實現新功能;但我有這個錯誤Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'br_interne.questionnaires_reponses.re_int' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_bySELECT `ch_ref` AS id, `ch_date_prevue` AS date, `ch_prestataire_terrassement_branchement` AS prestataire, `re_int` FROM (`questionnaires_contacts`) JOIN `chantiers_osr` ON `ch_ref`=`qc_chantier_id` JOIN `communes` ON `ch_insee`=`co_insee` JOIN `departements` ON `co_departement`=`de_id` LEFT JOIN `questionnaires_reponses` ON `re_questionnaire_contact` = `qc_id` AND re_question = 7 WHERE `de_id` = '78' AND `ch_date_prevue` >= '0000-00-00' AND `qc_chantier_type` = 'osr' AND `qc_invitation_envoyee` = '1' GROUP BY `qc_chantier_id`不幸的是,如果更改 SQL_mode 請求不起作用。(真的很奇怪,因為這段代碼在服務器上工作)。如果你有任何想法。即使使用 SQL 文檔,我也可以找到修改此請求的解決方案。提前非常感謝。
2 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
ONLY_FULL_GROUP_BY
從MySql
控制臺中刪除
mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
或者
在下面的查詢中觸發PHPMyAdmin
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
出現此錯誤是因為 Group By 中的列與 select 中的列不同。GROUP BY 將創建匯總列,因此在 select 中為其他列選擇什么值尚不清楚。
UserId | ModuleId
例如:對于具有userId 和 ModuleId 具有 1:N 映射的列的表。
說你跑select UserId, ModuleId from UserModule group by userId;
現在,應該為 userId 選擇哪個 moduleId?
因此,這個問題。因此,對于其他列,您有以下選擇:
刪除選擇中的其他列,
對其他列使用像 ANY_VALUE 這樣的聚合函數
MySQL 的這種強制措施是為了改進語義上不正確的查詢,而不是簡單地讓查詢以某種方式獲得輸出。
如果您仍想禁用該模式,您可以按照其他答案中的說明進行操作。
- 2 回答
- 0 關注
- 158 瀏覽
添加回答
舉報
0/150
提交
取消