SQL | From子句中的子查询

null

From子句可用于在SQL中指定子查询表达式。然后,子查询生成的关系被用作应用外部查询的新关系。

  • 大多数SQL实现都支持from子句中的子查询。
  • from子句中的关系中的相关变量不能用于from子句中的子查询。

语法 :

SELECT column1, column2 FROM 
(SELECT column_x  as C1, column_y FROM table WHERE PREDICATE_X)
as table2
WHERE PREDICATE;

笔记 : 首先计算from子句中的子查询,然后将计算结果存储在新的临时关系中。 接下来,计算外部查询,只从临时关系中选择满足外部查询where子句中谓词的元组。

查询

例1 : 找到所有薪水高于所有系平均预算的教授。

教练 关系:

教官 名称 部门 薪水
44547 史密斯 计算机科学 95000
44541 账单 与电有关的 55000
47778 山姆 人文学科 44000
48147 埃里克 机动的 80000
411547 梅丽莎 信息技术 65000
48898 耶拿 公民的 50000

部门 关系:

部门名称 预算
计算机科学 100000
电气的 80000
人文学科 50000
机动的 40000
信息技术 90000
公民的 60000

查询 :

select I.ID, I.NAME, I.DEPARTMENT, I.SALARY from
(select avg(BUDGET) as averageBudget from DEPARTMENT) as BUDGET, Instructor as I
where I.SALARY > BUDGET.averageBudget;

输出

教官 名称 部门 薪水
44547 史密斯 计算机科学 95000
48147 埃里克 机动的 80000

解释 : 部门关系中所有部门的平均预算为70000。Erik和Smith是讲师关系中工资超过70000的唯一讲师,因此在输出关系中存在。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享