在执行比较复杂的查询工作时,在一个查询叙述中,可能会有结合查询、子查询和其它复杂的判断条件。一个看起来比较长而且比较复杂的查询,效率并一定比较不好。不过你可以使用一些比较特别的方式,进一步改善查询的复杂度与效率。以下列的查询来说:
上列的查询是一个不算太复杂的结合查询,如果还要在加上其它的条件判断的话,看起来就会更长一些:
如果还要再结合另外一个表格的话,这个查询看起来就真的很复杂了:
上列的查询看起来虽然复杂,不过如果都有可以使用的索引,它执行的效率也会是不错的。如果在查询工作中,很常使用第一个查询的结果,再加上不同的条件或结合,你就可以考虑使用下列的叙述,先建立好一个暂时的表格:
因为查询的结果已经储存在「countrycapital」表格中,所以要加入其它的条件就变得简单多了:
如果要再结合另外一个表格的话,也会比较容易:
在「第九章、子查询、FROM子句与子查询」讨论到可以把一个查询放在「FROM」子句中:
使用这样的方式虽然可以得到一样的查询结果,不过在你很常使用上列子查询来增加条件的情况下,每次执行不同条件的查询,资料库都要重新执行子查询叙述;先建立暂时的表格,再使用暂时表格执行查询的作法会是比较有效率的。