• Home
  • LLMs
  • Python
  • Docker
  • Kubernetes
  • Java
  • Ubuntu
  • Maven
  • Archived
  • About
Oracle | SQL JOIN Cheat Sheet
  1. Notes
  2. SQL JOIN Cheat Sheet
  3. [INNER] JOIN
  4. LEFT [OUTER] JOIN
  5. LEFT [OUTER] JOIN (excluding INNER JOIN)
  6. RIGHT [OUTER] JOIN
  7. RIGHT [OUTER] JOIN (excluding INNER JOIN)
  8. FULL [OUTER] JOIN
  9. FULL [OUTER] JOIN (excluding INNER JOIN)
  10. CROSS JOIN
  11. Semi join
  12. Anti join
  13. UNION
  14. INTERSECT

  1. Notes
    This page explains how to use different types of SQL JOIN to combines records from two tables.
    In practice joining two tables requires that the related columns, used to join these tables, are indexed properly.
    The related columns are often the primary and foreign keys of the joined tables.

    These tables and their data are used in the examples bellow:
    • Table1   Table2

  2. SQL JOIN Cheat Sheet
    [INNER] JOIN
    LEFT [OUTER] JOIN
    LEFT [OUTER] JOIN (excluding INNER JOIN)
    RIGHT [OUTER] JOIN
    RIGHT [OUTER] JOIN (excluding INNER JOIN)
    FULL [OUTER] JOIN
    FULL [OUTER] JOIN (excluding INNER JOIN)
    CROSS JOIN
    Semi join
    Anti join
  3. [INNER] JOIN

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownum1c1rownum2c2
      1"a"1"a"
      2"a"1"a"
      3"b"2"b"
      3"b"3"b"

  4. LEFT [OUTER] JOIN

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownum1c1rownum2c2
      1"a"1"a"
      2"a"1"a"
      3"b"2"b"
      3"b"3"b"
      4"c"(null)(null)
      5"c"(null)(null)
      6"d"(null)(null)

  5. LEFT [OUTER] JOIN (excluding INNER JOIN)

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownum1c1
      4"c"
      5"c"
      6"d"

  6. RIGHT [OUTER] JOIN

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownum1c1rownum2c2
      1"a"1"a"
      2"a"1"a"
      3"b"2"b"
      3"b"3"b"
      (null)(null)4"e"
      (null)(null)5"e"
      (null)(null)6"f"

  7. RIGHT [OUTER] JOIN (excluding INNER JOIN)

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownum2c2
      4"e"
      5"e"
      6"f"

  8. FULL [OUTER] JOIN

    • Sample Query (1):

    • Sample Query (2):

    • Pseudo-code:

    • Query output:
      rownum1c1rownum2c2
      1"a"1"a"
      2"a"1"a"
      3"b"2"b"
      3"b"3"b"
      4"c"(null)(null)
      5"c"(null)(null)
      6"d"(null)(null)
      (null)(null)4"e"
      (null)(null)5"e"
      (null)(null)6"f"

  9. FULL [OUTER] JOIN (excluding INNER JOIN)

    • Sample Query (1):

    • Sample Query (2):

    • Pseudo-code:

    • Query output:
      rownum1c1rownum2c2
      4"c"(null)(null)
      5"c"(null)(null)
      6"d"(null)(null)
      (null)(null)4"e"
      (null)(null)5"e"
      (null)(null)6"f"

  10. CROSS JOIN

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownum1c1rownum2c2
      1"a"1"a"
      1"a"2"b"
      1"a"3"b"
      1"a"4"e"
      1"a"5"e"
      1"a"6"f"
      2"a"1"a"
      2"a"2"b"
      2"a"3"b"
      2"a"4"e"
      2"a"5"e"
      2"a"6"f"
      3"b"1"a"
      3"b"2"b"
      3"b"3"b"
      3"b"4"e"
      3"b"5"e"
      3"b"6"f"
      4"c"1"a"
      4"c"2"b"
      4"c"3"b"
      4"c"4"e"
      4"c"5"e"
      4"c"6"f"
      5"c"1"a"
      5"c"2"b"
      5"c"3"b"
      5"c"4"e"
      5"c"5"e"
      5"c"6"f"
      6"d"1"a"
      6"d"2"b"
      6"d"3"b"
      6"d"4"e"
      6"d"5"e"
      6"d"6"f"

  11. Semi join

    • Sample Query (1):

    • Sample Query (2):

    • Pseudo-code:

    • Query output:
      rownum1c1
      1"a"
      2"a"
      3"b"

  12. Anti join

    • Sample Query (1):

    • Sample Query (2):

    • Pseudo-code:

    • Query output:
      rownum1c1
      4"c"
      5"c"
      6"d"

  13. UNION

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownumc
      1"a"
      2"a"
      2"b"
      3"b"
      4"c"
      4"e"
      5"c"
      5"e"
      6"d"
      6"f"

  14. INTERSECT

    • Sample Query:

    • Pseudo-code:

    • Query output:
      rownumc
      1"a"
      3"b"
© 2025  mtitek