Advertisement

MySQL中的子查询

阅读量:

分类:

在处理多表关联或表内字段关联,以及执行相似功能判断时,通常会借助子查询来应对相关问题。
1. 非关联子查询:

内部查询未引用外部查询中的字段,并且该内部查询能够独立执行。

2. 关联子查询:

内部查询引用了外部查询中的字段,且该内部查询无法单独运行。

子查询特性分析

子查询具备较强的灵活性,能够应对诸多其他查询手段难以处理的情形

子查询在执行效率方面表现较差,尤其是相关子查询的效率最为低下

随着子查询嵌套层级的增加,整体运行效率呈下降趋势

为何相关子查询的执行效率异常低下?

内部查询引用了外部查询中的列数据,在处理每一行记录时都需要对表进行循环遍历。这种循环过程中产生的值均为动态生成的结果。

结论:

性能优先级排序/推荐使用顺序
关联/分组查询 > 无关子查询 > 相关子查询

识别出每个部门中薪资高于该部门平均工资的员工姓名及其薪资水平

复制代码
    mysql>select e.first_name,e.salary from s_emp e
      where e.salary>(select avg(e1.salary) from s_emp e1 	         where e1.d

全部评论 (0)

还没有任何评论哟~