ホームページ > データベース > mysql チュートリアル > MySQL エラー #1140: GROUP カラムの混合を解決する方法?

MySQL エラー #1140: GROUP カラムの混合を解決する方法?

Barbara Streisand
リリース: 2024-12-29 16:51:17
オリジナル
750 人が閲覧しました

How to Resolve MySQL Error #1140: Mixing of GROUP Columns?

MySQL エラー #1140: GROUP カラムの混合

このエラーは、MySQL クエリで GROUP 関数と非 GROUP カラムが混在している場合に発生します。 SELECT リストですが、GROUP BY 句はありません。つまり、選択した列の一部はグループ化する必要があり、その他の列はグループ化しないことを示唆しています。

次の SQL クエリを考えてみましょう。

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;
ログイン後にコピー

このクエリは、 「update」タイプのノードの数を取得し、各ノードのノード ID (nid) と更新日を取得します。ただし、GROUP 関数 COUNT() と、SELECT リストの非 GROUP 列 nid および node_data_field_update_date_field_update_date_value が混在しています。

このエラーを解決するには、MySQL サーバーの ONLY_FULL_GROUP_BY 設定を無効にするか、クエリをグループ化するように変更します。非グループ列:

ONLY_FULL_GROUP_BY の無効化:

mysql> SET GLOBAL ONLY_FULL_GROUP_BY = OFF;
ログイン後にコピー

クエリへのグループ化の追加:

SELECT COUNT(node.nid) AS node_count,
       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 node.nid, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
ログイン後にコピー

以上がMySQL エラー #1140: GROUP カラムの混合を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート