Oracle
 sql >> база данни >  >> RDS >> Oracle

Синтаксисът на Oracle отляво свързва три или повече таблици

Можете да го видите по каскаден начин. Ключът обаче е да търсите тези таблици, които са свързани отляво и отдясно в една и съща заявка. В този случай редът е различен:първо се прилага условието, при което таблицата е дясно свързана. Надявам се следната диаграма да хвърли малко светлина върху това:

Можете също да проверите реда на тези съединения, като погледнете плана за изпълнение на заявката:

За Q1:

select a.c a, b.c b, c.c c   from a, b, c  where a.c = b.c (+)    and
c.c = a.c (+)

------------------------------------------------------------------------
| Id  | Operation           | Name | E-Rows |  OMem |  1Mem | Used-Mem |
------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |      |        |       |       |          |
|*  1 |  HASH JOIN OUTER    |      |      4 |  2168K|  2168K|  805K (0)|
|*  2 |   HASH JOIN OUTER   |      |      4 |  2616K|  2616K|  981K (0)|
|   3 |    TABLE ACCESS FULL| C    |      4 |       |       |          |
|   4 |    TABLE ACCESS FULL| A    |      4 |       |       |          |
|   5 |   TABLE ACCESS FULL | B    |      4 |       |       |          |
------------------------------------------------------------------------

За Q2:

select a.c a, b.c b, c.c c   from a, b, c  where c.c = a.c (+)    and
a.c = b.c (+)

------------------------------------------------------------------------
| Id  | Operation           | Name | E-Rows |  OMem |  1Mem | Used-Mem |
------------------------------------------------------------------------
|   0 | SELECT STATEMENT    |      |        |       |       |          |
|*  1 |  HASH JOIN OUTER    |      |      4 |  2168K|  2168K|  801K (0)|
|*  2 |   HASH JOIN OUTER   |      |      4 |  2616K|  2616K|  983K (0)|
|   3 |    TABLE ACCESS FULL| C    |      4 |       |       |          |
|   4 |    TABLE ACCESS FULL| A    |      4 |       |       |          |
|   5 |   TABLE ACCESS FULL | B    |      4 |       |       |          |
------------------------------------------------------------------------


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задайте изтичане/гратисен период на потребителска парола на Oracle

  2. ODP.NET Oracle.ManagedDataAccess причинява края на мрежовата сесия ORA-12537 на файла

  3. Използване на дата в ограничение за проверка, Oracle

  4. Как да проверите условията и да напишете текст в текстов файл oracle forms

  5. Как да конвертирате SDO_GEOMTRY в GeoJSON