以下のように、group byのカラムとselectのカラムが異なる場合、標準のSQLではエラーになるが(Oracleなどではエラー)、mysqlの拡張仕様によりmysqlでは可能。
sql
select
foo,bar
from hoge
group by foo
以下の場合、barには何が入るのかというと、結果は不確定となる。
つまり、AかBかCが入る。(試してみるとAが入るっぽいが、保障はしないということだと思う。)
foo | bar |
---|---|
1 | A |
1 | B |
1 | C |
11.11.3. 非常時フィールドとの GROUP BY および HAVING)
この拡張は、グループ分けされていないカラムが、同じグループに関する値を持っていることを前提としています。それ以外では、結果は不確実になります。