group by
を実行しています (3列)選択リストに5列の非集計列があります。また、重要ではありませんが、列の出力には集計がありません。
MySQLはそれをdistinct
として扱います (3列の場合)MRUキャッシュで最初に検出された行を戻します。キャッシュがない場合は、クラスター化インデックスまたは物理順序で最初に検出された行が、グループ化されていない2つの列を満たします。
つまり、ユーザーエラーです。スナフ。 GROUP BY
で意図をクリーンアップすることをお勧めします 。
やや関連して、私の最近の回答を読んでくださいここ
ONLY_FULL_GROUP_BY
に関連 。そのリンクの下部にあるのは、MySQLの処理です。 GROUP BY
私の見解では、これはMySQLが許可した実際の問題と非標準の概要であり、その標準の違反からのデータを予期せず説明するのが困難になりました。
では、MySQL開発チームは何をしましたか?彼らはデフォルトで標準を実装し(バージョン5.7以降)、実行したばかりのタイプのクエリを禁止しました。
Edit1
GROUP BY
を使用しないクエリ ただし、order by newGroups.id,people.id
、バージョン5.7.14サーバーの場合: