
# FROM
#### 功能描述
在FROM子句中嵌套子查询，子查询的结果作为中间过渡表，进而作为外部SELECT语句的数据源。
#### 语法格式
```
SELECT [ALL | DISTINCT] attr_expr_list FROM (sub_query) [alias];
```
#### 关键字
- ALL：返回重复的行。为默认选项。其后只能跟\*，否则会出错。
- DISTINCT：从结果集移除重复的行。
 
#### 注意事项
- 所要查询的表必须是已经存在的表，否则会出错。
- FROM嵌套子查询中，子查询必须要取别名，且别名的命名要早于别名的使用，否则会出错。建议别名不要重名。
- FROM后所跟的子查询结果必须带上前面所取的别名，否则会出错。
 
#### 示例
返回选了course_info表中课程的学生姓名，并利用DISTINCT关键字进行去重。
```
SELECT DISTINCT name FROM (SELECT name FROM student_info
  JOIN course_info ON student_info.courseId = course_info.courseId) temp;
```
