下面两条sql按理来说执行出来的结果几乎一样,为什么我只有第二条可能偶执行,第一条执行就会报错,求解答(按照别人视频来敲的,视频都可以执行,我有很多代码执行就会出错)。
求有能者解答解答,不然法学下去了,写出来的都不知道对不对
select
s.s_id,
s.s_name,
count(a.c_id) count_s,
sum(a.s_score) sum_s
from
score a
inner join
student s
on
s.s_id = a.s_id
group by
a.s_id;
-------------------------------------------------------------------------------------
select
b.s_id,
b.s_name,
count(a.c_id) count_s,
ifnull(sum(a.s_score),0) sum_s
from
score a
right join
student b
on
b.s_id = a.s_id
group by
b.s_id,
b.s_name;
下面是表
下面是报错信息
0 127 15:56:44 select
s.s_id,
s.s_name,
count(a.c_id) count_s,
sum(a.s_score) sum_s
from
score a
inner join
student s
on
s.s_id = a.s_id
group by
a.s_id
LIMIT 0, 1000 Error Code: 1055. Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'timedata.s.s_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.000 sec