我有两个表,a和b。
a是详细数据,b是统计数据。
现在a中有一个字段Hero,每条数据可能都不一样。
我要写一个存储过程,调用的时候把a中指定ID的Hero的值的统计数据的前三名放到b中的三个字段fav1,fav2,fav3。如果筛选出来的结果小于3个,多余位置就填0。
下面是我写的,已经能够成功筛选出结果,但是我不知道怎么写到另外一个表里
SELECT Hero , COUNT(Hero) FROM a WHERE ID = vID GROUP BY Hero ORDER BY COUNT(Hero) DESC;
1、弱水三千只取一瓢
SELECT Hero , COUNT(Hero) FROM a WHERE ID = vID GROUP BY Hero ORDER BY COUNT(Hero) DESC LIMIT 3
2、使用游标Cursor,取出三个统计数据
3、放到B表相应字段中。(这个你没有写清楚,没有办法指点)
能把第二步写详细一点么?现在我就是不知道如何从第一步中取出结果。第三步只要有3个变量我就可以搞定。
@武装三藏: 自个儿研究吧,就三行数据,怎么都能取出来。
伪代码如下:
declare iRow int
set iRow=0
for each row in table
set iRow=iRow+1
if iRow=1 then do something
if iRow=2 then do something
if iRow=3 then do something
next
@爱编程的大叔: 感谢大侠,自己查了下游标,也知道了新知识。游标就是解决我整个问题的关键,你要不写Cursor这个单词,我都不知道怎么搜
难道不能insert into
哈哈,u can u up
@爱编程的大叔: 额,U will down if I can!