# TableExpression

A TableExpression specifies a table, view, or function in a FROM clause. It is the source from which a SelectExpression selects a result.

A correlation name can be applied to a table in a TableExpression so that its columns can be qualified with that name. If you do not supply a correlation name, the table name qualifies the column name. When you give a table a correlation name, you cannot use the table name to qualify columns. You must use the correlation name when qualifying column names.

No two items in the FROM clause can have the same correlation name, and no correlation name can be the same as an unqualified table name specified in that FROM clause.

In addition, you can give the columns of the table new names in the AS clause. Some situations in which this is useful:

- When a VALUES expression is used as a TableSubquery, since there is no other way to name the columns of a VALUES expression.
- When column names would otherwise be the same as those of columns in other tables; renaming them means you don't have to qualify them.

The Query in a TableSubquery appearing in a FromItem can contain multiple columns and return multiple rows. See TableSubquery.

For information about the optimizer overrides you can specify, see Tuning Java DB.

#### Syntax

    {
    TableViewOrFunctionExpression | JOIN operation
    }

#### Example

    -- SELECT from a Join expression
    SELECT E.EMPNO, E.LASTNAME, M.EMPNO, M.LASTNAME
     FROM EMPLOYEE E LEFT OUTER JOIN
       	DEPARTMENT INNER JOIN EMPLOYEE M
      ON MGRNO = M.EMPNO
      ON E.WORKDEPT = DEPTNO

- TableViewOrFunctionExpression

Parent topic: SQL expressions
Related concepts
Dynamic parameters
Related reference
SelectExpression
VALUES expression
Expression precedence
Boolean expressions