假定A、B、C都是不是小表,且在A表上一个组合索引:A(a.col1,a.col2) ,注意a.col1列为索引的引导列。 
考虑下面的查询: 
| select  A.col4 
from   A , B , C 
where  B.col3 = 10   and  A.col1 = B.col1  
and  A.col2 = C.col2  and  C.col3 = 5
Execution Plan
------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0  MERGE JOIN
   2    1  SORT (JOIN)
   3    2  NESTED LOOPS
   4    3  TABLE ACCESS (FULL) OF 'B'
   5    3  TABLE ACCESS (BY INDEX ROWID) OF 'A'
   6    5  INDEX (RANGE SCAN) OF 
'INX_COL12A' (NON-UNIQUE)
   7    1  SORT (JOIN)
   8    7  TABLE ACCESS (FULL) OF 'C'
Statistics
--------------------------------------
          0  recursive calls
          8  db block gets
          6  consistent gets
          0  physical reads
          0  redo size
        551  bytes sent via SQL*Net to client
        430  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          6  rows processed | 
在表做连接时,只能2个表先做连接,然后将连接后的结果作为一个row source,与剩下的表做连接,在上面的例子中,连接顺序为B与A先连接,然后再与C连接: 
| B     <---> A <--->    C
col3=10                col3=5 |