2011-03-27 86 views
1
mysql> Select Emp_B AS Total 
    -> From (Select Sum(mines.NoOfWorkers) AS Emp_B from mines); 
ERROR 1248 (42000): Every derived table must have its own alias 

mysql> Select Emp_B AS Total 
    -> From (Select Sum(mines.NoOfWorkers) from mines) AS Emp_B; 
ERROR 1054 (42S22): Unknown column 'Emp_B' in 'field list' 

我遇到了这个SQL语句的问题。任何援助将是摩西赞赏SQL语句错误

回答

1
Select Emp_B AS Total 
From (Select Sum(mines.NoOfWorkers) AS Emp_B from mines) x; 

由于错误状态Every derived table must have its own alias 只要给它一个别名,像上面x。 OR AS x,但AS字是可选的。

或者为什么别名两次......

Select Total 
From (Select Sum(mines.NoOfWorkers) AS Total from mines) x; 

但由于SUM给你一个值,除非你已经简化了一些较大的查询,这给了完全相同的结果?

Select Sum(mines.NoOfWorkers) AS Total from mines; 
+0

是的,它仅仅是一个较大的....感谢的一部分 – Shawn 2011-03-27 23:26:20

1

这应该适合你;然而,如果你只是做这一个子选择进入临时表,它是一种浪费,将其包装到另一个选择,但这只是恕我直言。

Select Emp_B.sum From (Select Sum(mines.NoOfWorkers) as sum from mines) AS Emp_B; 
0
Select temp.total 
From 
    (Select Sum(mines.NoOfWorkers) AS total 
    from mines 
) AS temp 
;