# JOIN operations

The JOIN operations, which are among the possible TableExpressions in a FROM clause, perform joins between two tables. (You can also perform a join between two tables using an explicit equality test in a WHERE clause, such as "WHERE t1.col1 = t2.col2".)

#### Syntax

    JOIN Operation

The JOIN operations are:

- INNER JOIN operation

  Specifies a join between two tables with an explicit join clause.

- LEFT OUTER JOIN operation

  Specifies a join between two tables with an explicit join clause, preserving unmatched rows from the first table.

- RIGHT OUTER JOIN operation

  Specifies a join between two tables with an explicit join clause, preserving unmatched rows from the second table.

- CROSS JOIN operation

  Specifies a join that produces the Cartesian product of two tables. It has no explicit join clause.

- NATURAL JOIN operation

  Specifies an inner or outer join between two tables. It has no explicit join clause. Instead, one is created implicitly using the common columns from the two tables.

In all cases, you can specify additional restrictions on one or both of the tables being joined in outer join clauses or in the WHERE clause.

#### JOIN expressions and query optimization

For information on which types of joins are optimized, see Tuning Java DB.

- INNER JOIN operation
- LEFT OUTER JOIN operation
- RIGHT OUTER JOIN operation
- CROSS JOIN operation
- NATURAL JOIN operation

Parent topic: SQL language reference
Related concepts
SQL identifiers
Statements
Built-in system functions
Built-in system procedures
Data types
Related reference
Capitalization and special characters
SQL clauses
SQL expressions
SQL queries
Built-in functions
SYSCS_DIAG diagnostic tables and functions