ice*_*l89 3 mysql sql alias mysql-error-1054
我想知道为什么会失败
mysql> SELECT Continent C, Name, SurfaceArea
-> FROM Country
-> WHERE SurfaceArea = (
-> SELECT MAX(SurfaceArea)
-> FROM Country
-> WHERE Continent = C);
ERROR 1054 (42S22): Unknown column 'C' in 'where clause'
它是一个样本练习的认证指南提供的答案.
顺便说一句,换个别名什么时候我必须使用AS?是可选的吗?
为了执行相关子查询,您需要外部表的别名.您为外部表的字段创建了别名.看看下面的更正代码,它具有子查询中引用的表(Cou)的别名(请注意,字段别名不是必需的,因此我将其删除.如果您愿意,将其添加回来没有任何害处) :
SELECT Continent, Name, SurfaceArea
FROM Country Cou
WHERE SurfaceArea =
(
SELECT MAX(SurfaceArea)
FROM Country
WHERE Continent = Cou.Continent
);
Run Code Online (Sandbox Code Playgroud)
关于AS的使用,它是可选的.例如,在上面的查询中,您可以编写Country AS Cou,它将是相同的.
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |