FROM 子句里的子查询,用得顺手是真的能省不少事。你像查员工信息这种需求,直接在 FROM 里嵌个按部门分组的平均工资子查询,逻辑就清晰多了。要注意一点,FROM 里的子查询一定得起个别名,不然 Oracle 会报错,挺严格的。你可以参考这个例子,思路还蛮实用的:

SELECT employee_id, first_name, last_name, d.avgsal
FROM employees,
     (SELECT department_id, AVG(salary) avgsal FROM employees GROUP BY department_id) d
WHERE employees.department_id = d.department_id;

上面这段就是经典写法了,把子查询当成临时表,联表查员工信息+部门平均工资,一步搞定,效率也还不错。

如果你对子查询不太熟,建议顺手看看这几个:

嗯,如果你写 SQL 总纠结“放哪儿写合适”,那不妨多练练 FROM 子查询这招,灵活又实用。