Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL #1140: 'Pencampuran lajur KUMPULAN' dalam Pertanyaan SQL Jauh?

Bagaimana untuk Menyelesaikan Ralat MySQL #1140: 'Pencampuran lajur KUMPULAN' dalam Pertanyaan SQL Jauh?

Barbara Streisand
Barbara Streisandasal
2025-01-01 13:53:10945semak imbas

How to Resolve MySQL Error #1140:

Mengendalikan Ralat MySQL #1140: "Pencampuran lajur KUMPULAN" dalam Persekitaran Jauh

Apabila menghadapi ralat "MySQL #1140 - Pencampuran lajur GROUP (MIN( ), MAX(), COUNT(),...) tanpa lajur GROUP adalah haram jika tiada GROUP BY klausa," ini menunjukkan bahawa pertanyaan SQL anda cuba untuk mencampurkan lajur berkumpulan (cth., COUNT()) dengan lajur bukan berkumpulan (cth., nid) tanpa menggunakan klausa GROUP BY.

Dalam kes khusus anda, isu timbul dalam pertanyaan SQL berikut:

SELECT COUNT(node.nid),
       node.nid AS nid,
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
ORDER BY node_data_field_update_date_field_update_date_value DESC

Untuk menyelesaikan isu tersebut, anda mempunyai dua pilihan:

  1. Lumpuhkan ONLY_FULL_GROUP_BY: Tetapan pelayan MySQL ini memerlukan semua lajur yang dipilih (selain daripada fungsi agregat) dimasukkan dalam klausa GROUP BY. Anda boleh melumpuhkannya dengan menetapkan ONLY_FULL_GROUP_BY kepada 0 dalam konfigurasi MySQL.
  2. Tambah GROUP BY klausa: Sebagai alternatif, anda boleh mengumpulkan hasil secara eksplisit mengikut lajur yang digunakan dalam pemilihan:
SELECT COUNT(node.nid),
       node.nid AS nid,
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
GROUP BY nid, node_data_field_update_date_field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC

Dengan menggabungkan salah satu daripada penyelesaian ini, anda boleh menangani ralat "Pencampuran lajur KUMPULAN" dan berjaya melaksanakan pertanyaan SQL dalam persekitaran jauh.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL #1140: 'Pencampuran lajur KUMPULAN' dalam Pertanyaan SQL Jauh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn