以下是引用kiff在2015-5-20 14:57:50的发言:
测试了一下,似乎发现这样的情况:
SELECT max(平均分) as 平均分 FROM ls into table b
执行完句时,在A区打开了ls表,在C区打开了B表,可能是SELECT 内部机制(也不知的情况,猜的),接着执行select a.* from ls as a,b where a.平均分=b.平均分,这时 select 在最小工作区(b)再次打开 LS表,这样的话,就是A、B都是ls这个表,也就是自己关联自己。
根据以上测试,作出如下调整,就会发现得出正确结果
方法1:
USE ls IN 2
SELECT max(平均分) as 平均分 FROM ls into table b
select a.* from ls as a,b where a.平均分=b.平均分
方法2:
SELECT max(平均分) as 平均分 FROM ls into table b
select a.* from ls as a,c where a.平均分=c.平均分
附上测试表
我试了一下,方法1是成功的,
方法2 select a.* from ls as a,
c where a.平均分=c.平均分中的C哪里来?
如果改为select a.* from ls as a,
b as c where a.平均分=c.平均分,运行结果又不成功