私が気付いたのは、select * from the tableName group by columnName;
の場合、エラーにはなりません。また、グループ化されていない列を選択した場合でも。group byのすべての列を選択してもエラーにはならないのはなぜですか?
私は、グループ化された列と集約された列のみを選択できることを理解しました。
これはなぜ許可されていますか?シーンの後ろに何か特別なことはありますか?ここ
は、SQLのフィドルが http://sqlfiddle.com/#!9/d3a23/5
私は答えが用意できたら、この質問はすでにブロックされていて、重複しているとマークされています。したがって、要するに、SQL標準では、選択されたすべてのフィールドがgroup by節にあるか、機能的にそれに依存しているか、集約されている必要があります。この "機能的に依存する"ものはDBMSを決定するのが難しいので、多くの場合、select節のこれらのフィールドは禁止されています(多くの場合、クエリが非常に面倒です)。 MySQLでは関数の依存関係をチェックするのではなく、任意のフィールドを許可します。フィールドがない場合は、1つの値が任意に選択されます。 –
これはMySQLの(誤った)機能で、正しいパラメータ設定で無効にすることができます。 –
@ThorstenKettnerありがとうございます。それは意味をなさない –