编写复杂SQL,不会一步到位的.是会通过多步的子查询,每一步加工出一部分数据,然后这部分数据再和其他SQL进行组合,多次嵌套加工,最后才能得到我们所要的结果.
这个过程,很类似于我们编写JAVA代码,复杂的逻辑,是通过一步步互相独立,又相互关联的方法,层层调用之后,才能得到我们最终想要的结果.
每一个方法负责接收上一层加工出来的数据,然后在本方法中,再次进行数据的加工(可能是直接用传入的数据进行加工过;也可能要依赖于本方法查询出来的数据,和方法入参的数据两者组合进行加工(这个就是类似于是不是需要子查询)).
效率什么的,就是看数据的处理逻辑,怎么走索引,怎么快而已.但是处理数据的思路跟JAVA是一样的.
核心是分析最终要的是什么.
目前有的是什么,怎么根据目前有的,一步一步加工出最终所需的数据.
可以理解为数学的解题步骤,或者是我们的多个java方法.每个方法加工出一个数据步骤的数据.