有两个表,一个是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;
也得到了相同的结果。
我知道第二条语句肯定是没错的,但想知道第一条语句有没有问题(显然从结果来看是没有问题);若果第一条语句没有问题,那么第二条稍微有点累赘的语句就没必要使用了。
付费偷看金额在0.1-10元之间
一周热门 更多>