MySQL group by的迷惑
MySQL group by的疑惑
《SQL入门经典》:所有被选中的,非汇总函数的字段必须列在group by子句里面。
但是,我在MySQL里面却可以只有部分字段出现在group by子句里面。
tab:
id name
1 d
3 b
3 c
2 b
null e
4 smith
执行select id,name from tab
group by id;
却可以执行,得到结果
id name
null e
1 d
3 b
4 smith
同学说他在oracle里面绝对会报错,但是为什么在MySQL里面不报错,可以执行呢?
------解决思路----------------------
这个是MYSQL的特殊语法,不是标准的
------解决思路----------------------
SQLSERVER也会报错。还是按照标准语法写吧
------解决思路----------------------
标准的SQL语法group by 要包含所有的非汇总字段
------解决思路----------------------
最好按标准的sql语法来写
------解决思路----------------------
这是MySQL 特有的语法,在SQLServer 和 Oarcle 中是会报错的,建议按照SQL标准来
《SQL入门经典》:所有被选中的,非汇总函数的字段必须列在group by子句里面。
但是,我在MySQL里面却可以只有部分字段出现在group by子句里面。
tab:
id name
1 d
3 b
3 c
2 b
null e
4 smith
执行select id,name from tab
group by id;
却可以执行,得到结果
id name
null e
1 d
3 b
4 smith
同学说他在oracle里面绝对会报错,但是为什么在MySQL里面不报错,可以执行呢?
------解决思路----------------------
这个是MYSQL的特殊语法,不是标准的
------解决思路----------------------
SQLSERVER也会报错。还是按照标准语法写吧
------解决思路----------------------
标准的SQL语法group by 要包含所有的非汇总字段
------解决思路----------------------
最好按标准的sql语法来写
------解决思路----------------------
这是MySQL 特有的语法,在SQLServer 和 Oarcle 中是会报错的,建议按照SQL标准来