MYSQL GROUP BY和连表 财富值1

2016-09-25 16:33发布

有两个表,一个是test_actor,一个是test_fans。
其中,DESC test_actor,有

DESC test_fans,有

其中1,2,3,....一直到31为每个月的每一天,边幅过长,我就不全部字段截图上来了。
这个表是用来记录这个演员的粉丝增长的。

现在,我要展示每个演员的名字和TA对应的粉丝总数,写了一条SQL语句:
SELECT name, SUM(1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31) AS fans FROM test_fans AS f RIGHT JOIN test_actor AS a ON actorid=a.id GROUP BY actorid ORDER BY fans DESC;
得到如下结果:

其实这样的结果就是我想要的,但我想起来,用了GROUP BY, 那么SELECT后面出现的字段是必须出现在GROUP BY后面(复合函数除外)。于是我又想了另一条语句:
SELECT name,fans FROM test_actor AS a RIGHT JOIN (SELECT actorid,SUM(1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31) as fans FROM test_fans GROUP BY actorid) AS f ON a.id=f.actorid ORDER BY fans DESC;
也得到了相同的结果。
我知道第二条语句肯定是没错的,但想知道第一条语句有没有问题(显然从结果来看是没有问题);若果第一条语句没有问题,那么第二条稍微有点累赘的语句就没必要使用了。

友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。