R
- The record type associated with this tablepublic interface Table<R extends Record> extends TableLike<R>
Modifier and Type | Method and Description |
---|---|
Table<R> |
as(Name alias)
Create an alias for this table.
|
Table<R> |
as(Name alias,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Name> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(Name alias,
java.util.function.Function<? super Field<?>,? extends Name> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(Name alias,
Name... fieldAliases)
Create an alias for this table and its fields.
|
Table<R> |
as(java.lang.String alias)
Create an alias for this table.
|
Table<R> |
as(java.lang.String alias,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends java.lang.String> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(java.lang.String alias,
java.util.function.Function<? super Field<?>,? extends java.lang.String> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(java.lang.String alias,
java.lang.String... fieldAliases)
Create an alias for this table and its fields.
|
Table<R> |
as(Table<?> otherTable)
Create an alias for this table based on another table's name.
|
Table<R> |
as(Table<?> otherTable,
java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Field<?>> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
as(Table<?> otherTable,
Field<?>... otherFields)
Create an alias for this table based on another table's name.
|
Table<R> |
as(Table<?> otherTable,
java.util.function.Function<? super Field<?>,? extends Field<?>> aliasFunction)
Create an alias for this table and its fields.
|
Table<R> |
asOfScn(Field<? extends java.lang.Number> scn)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asOfScn(java.lang.Number scn)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asOfTimestamp(Field<java.sql.Timestamp> timestamp)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
asOfTimestamp(java.sql.Timestamp timestamp)
Create an
SQLDialect.ORACLE flashback query clause from this
table. |
Table<R> |
at(Link link)
A table reference of this table at a given
Link . |
Table<R> |
at(Name link)
A table reference of this table at a given
Link . |
Table<R> |
at(java.lang.String link)
A table reference of this table at a given
Link . |
Table<Record> |
crossApply(Name name)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(SQL sql)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(java.lang.String sql)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(java.lang.String sql,
java.lang.Object... bindings)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(java.lang.String sql,
QueryPart... parts)
CROSS APPLY a table to this table. |
Table<Record> |
crossApply(TableLike<?> table)
CROSS APPLY a table to this table. |
Table<Record> |
crossJoin(Name name)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(SQL sql)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(java.lang.String sql)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(java.lang.String sql,
java.lang.Object... bindings)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(java.lang.String sql,
QueryPart... parts)
CROSS JOIN a table to this table. |
Table<Record> |
crossJoin(TableLike<?> table)
CROSS JOIN a table to this table. |
DivideByOnStep |
divideBy(Table<?> divisor)
Create a new
TABLE reference from this table, applying
relational division. |
Condition |
eq(Table<R> table)
Create a predicate comparing records from self-joined tables.
|
Condition |
equal(Table<R> table)
Create a predicate comparing records from self-joined tables.
|
boolean |
equals(java.lang.Object other)
Check whether this
QueryPart can be considered equal to
another QueryPart . |
Table<R> |
forceIndex(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
forceIndexForGroupBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
forceIndexForJoin(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
forceIndexForOrderBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
R |
from(Record record)
The inverse operation of
Record.into(Table) . |
TableOnStep<Record> |
fullJoin(Name name)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(SQL sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(java.lang.String sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(java.lang.String sql,
java.lang.Object... bindings)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(java.lang.String sql,
QueryPart... parts)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullJoin(TableLike<?> table)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(Name name)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(SQL sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(java.lang.String sql)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(java.lang.String sql,
QueryPart... parts)
FULL OUTER JOIN a table to this table. |
TableOnStep<Record> |
fullOuterJoin(TableLike<?> table)
FULL OUTER JOIN a table to this table. |
Catalog |
getCatalog()
Get the table catalog.
|
java.lang.String |
getComment()
The comment given to the table.
|
DataType<R> |
getDataType()
The table's record type as a UDT data type, in case the underlying
database supports table records as UDT records.
|
Identity<R,?> |
getIdentity()
Retrieve the table's
IDENTITY information, if available. |
java.util.List<Index> |
getIndexes()
Retrieve all of the table's indexes.
|
java.util.List<UniqueKey<R>> |
getKeys()
Retrieve all of the table's unique keys.
|
java.lang.String |
getName()
The name of this table.
|
UniqueKey<R> |
getPrimaryKey()
Retrieve the table's primary key
|
Name |
getQualifiedName()
The qualified name of this table.
|
TableField<R,?> |
getRecordTimestamp()
A "timestamp" field holding record timestamp information used for
optimistic locking
jOOQ supports optimistic locking in
UpdatableRecord.store() and
UpdatableRecord.delete() if
Settings.isExecuteWithOptimisticLocking() is enabled. |
java.lang.Class<? extends R> |
getRecordType()
The record type produced by this table.
|
TableField<R,?> |
getRecordVersion()
A "version" field holding record version information used for optimistic
locking
jOOQ supports optimistic locking in
UpdatableRecord.store() and
UpdatableRecord.delete() if
Settings.isExecuteWithOptimisticLocking() is enabled. |
java.util.List<ForeignKey<R,?>> |
getReferences()
Get the list of
FOREIGN KEY 's of this table |
<O extends Record> |
getReferencesFrom(Table<O> other)
Get a list of
FOREIGN KEY 's of a specific table, referencing
a this table. |
<O extends Record> |
getReferencesTo(Table<O> other)
Get a list of
FOREIGN KEY 's of this table, referencing a
specific table. |
Schema |
getSchema()
Get the table schema.
|
Name |
getUnqualifiedName()
The unqualified name of this table.
|
Table<R> |
ignoreIndex(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
ignoreIndexForGroupBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
ignoreIndexForJoin(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
ignoreIndexForOrderBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
TableOnStep<Record> |
innerJoin(Name name)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(SQL sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(java.lang.String sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(java.lang.String sql,
java.lang.Object... bindings)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(java.lang.String sql,
QueryPart... parts)
INNER JOIN a table to this table. |
TableOnStep<Record> |
innerJoin(TableLike<?> table)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(Name name)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(SQL sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(java.lang.String sql)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(java.lang.String sql,
java.lang.Object... bindings)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(java.lang.String sql,
QueryPart... parts)
INNER JOIN a table to this table. |
TableOnStep<Record> |
join(TableLike<?> table)
INNER JOIN a table to this table. |
TableOptionalOnStep<Record> |
join(TableLike<?> table,
JoinType type)
Join a table to this table using a
JoinType
Depending on the JoinType , a subsequent
TableOnStep.on(Condition...) or
TableOnStep.using(Field...) clause is required. |
TableOnStep<R> |
leftAntiJoin(TableLike<?> table)
A synthetic
LEFT ANTI JOIN clause that translates to an
equivalent NOT EXISTS predicate. |
TablePartitionByStep<Record> |
leftJoin(Name name)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(SQL sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(java.lang.String sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(java.lang.String sql,
java.lang.Object... bindings)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(java.lang.String sql,
QueryPart... parts)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftJoin(TableLike<?> table)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(Name name)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(SQL sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(java.lang.String sql)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(java.lang.String sql,
QueryPart... parts)
LEFT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
leftOuterJoin(TableLike<?> table)
LEFT OUTER JOIN a table to this table. |
TableOnStep<R> |
leftSemiJoin(TableLike<?> table)
A synthetic
LEFT SEMI JOIN clause that translates to an
equivalent EXISTS predicate. |
Table<Record> |
naturalJoin(Name name)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(SQL sql)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(java.lang.String sql)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(java.lang.String sql,
java.lang.Object... bindings)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(java.lang.String sql,
QueryPart... parts)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalJoin(TableLike<?> table)
NATURAL JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(Name name)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(SQL sql)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(java.lang.String sql)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(java.lang.String sql,
QueryPart... parts)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalLeftOuterJoin(TableLike<?> table)
NATURAL LEFT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(Name name)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(SQL sql)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(java.lang.String sql)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(java.lang.String sql,
QueryPart... parts)
NATURAL RIGHT OUTER JOIN a table to this table. |
Table<Record> |
naturalRightOuterJoin(TableLike<?> table)
NATURAL RIGHT OUTER JOIN a table to this table. |
Condition |
ne(Table<R> table)
Create a predicate comparing records from self-non-equi-joined tables.
|
R |
newRecord()
Create a new
Record of this table's type. |
Condition |
notEqual(Table<R> table)
Create a predicate comparing records from self-non-equi-joined tables.
|
Table<Record> |
outerApply(Name name)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(SQL sql)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(java.lang.String sql)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(java.lang.String sql,
java.lang.Object... bindings)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(java.lang.String sql,
QueryPart... parts)
OUTER APPLY a table to this table. |
Table<Record> |
outerApply(TableLike<?> table)
OUTER APPLY a table to this table. |
TableOuterJoinStep<Record> |
partitionBy(java.util.Collection<? extends Field<?>> fields)
Add a
PARTITION BY clause to the left hand side of the
OUTER JOIN keywords |
TableOuterJoinStep<Record> |
partitionBy(Field<?>... fields)
Add a
PARTITION BY clause to the left hand side of the
OUTER JOIN keywords |
PivotForStep |
pivot(java.util.Collection<? extends Field<?>> aggregateFunctions)
Create a new
TABLE reference from this table, pivoting it
into another form. |
PivotForStep |
pivot(Field<?>... aggregateFunctions)
Create a new
TABLE reference from this table, pivoting it
into another form. |
RecordType<R> |
recordType()
The record type produced by this table.
|
TablePartitionByStep<Record> |
rightJoin(Name name)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(SQL sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(java.lang.String sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(java.lang.String sql,
java.lang.Object... bindings)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(java.lang.String sql,
QueryPart... parts)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightJoin(TableLike<?> table)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(Name name)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(SQL sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(java.lang.String sql)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(java.lang.String sql,
java.lang.Object... bindings)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(java.lang.String sql,
QueryPart... parts)
RIGHT OUTER JOIN a table to this table. |
TablePartitionByStep<Record> |
rightOuterJoin(TableLike<?> table)
RIGHT OUTER JOIN a table to this table. |
TableOnStep<Record> |
straightJoin(Name name)
STRAIGHT_JOIN a table to this table. |
TableOnStep<Record> |
straightJoin(SQL sql)
STRAIGHT_JOIN a table to this table. |
TableOnStep<Record> |
straightJoin(java.lang.String sql)
STRAIGHT_JOIN a table to this table. |
TableOnStep<Record> |
straightJoin(java.lang.String sql,
java.lang.Object... bindings)
STRAIGHT_JOIN a table to this table. |
TableOnStep<Record> |
straightJoin(java.lang.String sql,
QueryPart... parts)
STRAIGHT_JOIN a table to this table. |
TableOnStep<Record> |
straightJoin(TableLike<?> table)
STRAIGHT_JOIN a table to this table. |
Table<R> |
useIndex(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
useIndexForGroupBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
useIndexForJoin(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
Table<R> |
useIndexForOrderBy(java.lang.String... indexes)
Specify a MySQL style table hint for query optimisation.
|
VersionsBetweenAndStep<R,java.lang.Number> |
versionsBetweenScn(Field<? extends java.lang.Number> scn)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.lang.Number> |
versionsBetweenScn(java.lang.Number scn)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.lang.Number> |
versionsBetweenScnMinvalue()
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.sql.Timestamp> |
versionsBetweenTimestamp(Field<java.sql.Timestamp> timestamp)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.sql.Timestamp> |
versionsBetweenTimestamp(java.sql.Timestamp timestamp)
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
VersionsBetweenAndStep<R,java.sql.Timestamp> |
versionsBetweenTimestampMinvalue()
Create an
SQLDialect.ORACLE flashback versions query clause from
this table. |
Table<R> |
with(java.lang.String hint)
Specify a SQL Server style table hint for query optimisation.
|
Catalog getCatalog()
Schema getSchema()
java.lang.String getName()
Name getQualifiedName()
Name getUnqualifiedName()
java.lang.String getComment()
If this Table
is a generated table from your database, it
may provide its DDL comment through this method. All other table
expressions return the empty string ""
here, never
null
.
RecordType<R> recordType()
java.lang.Class<? extends R> getRecordType()
DataType<R> getDataType()
R newRecord()
Record
of this table's type.DSLContext.newRecord(Table)
Identity<R,?> getIdentity()
IDENTITY
information, if available.
With SQL:2003, the concept of IDENTITY
columns was
introduced in most RDBMS. These are special kinds of columns that have
auto-increment functionality when INSERT
statements are
performed.
An IDENTITY
column is usually part of the
PRIMARY KEY
or of a UNIQUE KEY
in the table,
although in some RDBMS, this is not required. There can only be at most
one IDENTITY
column.
Note: Unfortunately, this is not supported in the Oracle dialect, where identities emulated by triggers cannot be formally detected.
IDENTITY
information, or
null
, if no such information is available.UniqueKey<R> getPrimaryKey()
null
for an updatable
table.TableField<R,?> getRecordVersion()
jOOQ supports optimistic locking in UpdatableRecord.store()
and
UpdatableRecord.delete()
if
Settings.isExecuteWithOptimisticLocking()
is enabled. Optimistic
locking is performed in a single UPDATE
or
DELETE
statement if tables provide a "version" or
"timestamp" field, or in two steps using an additional
SELECT .. FOR UPDATE
statement otherwise.
This method is overridden in generated subclasses if their corresponding tables have been configured accordingly. A table may have both a "version" and a "timestamp" field.
null
, if this table has no
"version" field.getRecordTimestamp()
,
UpdatableRecord.store()
,
UpdatableRecord.delete()
,
Settings.isExecuteWithOptimisticLocking()
TableField<R,?> getRecordTimestamp()
jOOQ supports optimistic locking in UpdatableRecord.store()
and
UpdatableRecord.delete()
if
Settings.isExecuteWithOptimisticLocking()
is enabled. Optimistic
locking is performed in a single UPDATE
or
DELETE
statement if tables provide a "version" or
"timestamp" field, or in two steps using an additional
SELECT .. FOR UPDATE
statement otherwise.
This method is overridden in generated subclasses if their corresponding tables have been configured accordingly. A table may have both a "version" and a "timestamp" field.
null
, if this table has no
"timestamp" field.getRecordVersion()
,
UpdatableRecord.store()
,
UpdatableRecord.delete()
,
Settings.isExecuteWithOptimisticLocking()
java.util.List<Index> getIndexes()
null
. This method returns
an unmodifiable list.java.util.List<UniqueKey<R>> getKeys()
null
. This is never empty
for a Table
with a getPrimaryKey()
. This
method returns an unmodifiable list.<O extends Record> java.util.List<ForeignKey<O,R>> getReferencesFrom(Table<O> other)
FOREIGN KEY
's of a specific table, referencing
a this table.O
- The other table's record typeother
- The other table of the foreign key relationshipFOREIGN KEY
's towards an this
table. This is never null
. This method returns an
unmodifiable list.java.util.List<ForeignKey<R,?>> getReferences()
FOREIGN KEY
's of this tableFOREIGN KEY
's. This is never
null
.<O extends Record> java.util.List<ForeignKey<R,O>> getReferencesTo(Table<O> other)
FOREIGN KEY
's of this table, referencing a
specific table.O
- The other table's record typeother
- The other table of the foreign key relationshipFOREIGN KEY
's towards an other table.
This is never null
.@Support(value=ORACLE) Table<R> at(java.lang.String link)
Link
.DSL.link(String)
@Support(value=ORACLE) Table<R> at(Name link)
Link
.DSL.link(Name)
@Support Table<R> as(java.lang.String alias)
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle()
. By default, table aliases are
quoted, and thus case-sensitive!
alias
- The alias name@Support Table<R> as(java.lang.String alias, java.lang.String... fieldAliases)
Note that the case-sensitivity of the returned table and columns depends
on Settings.getRenderNameStyle()
. By default, table aliases are
quoted, and thus case-sensitive!
Note, not all databases support derived column lists for their table
aliases. On the other hand, some databases do support derived column
lists, but only for derived tables. jOOQ will try to turn table
references into derived tables to make this syntax work. In other words,
the following statements are equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM my_table t(a, b)
-- Nesting table references within derived tables (e.g. SQL Server)
SELECT t.a, t.b
FROM (
SELECT * FROM my_table
) t(a, b)
Other databases may not support derived column lists at all, but they do
support common table expressions. The following statements are
equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM (
SELECT 1, 2
) AS t(a, b)
-- Using UNION ALL to produce column names (e.g. MySQL)
SELECT t.a, t.b
FROM (
SELECT null a, null b FROM DUAL WHERE 1 = 0
UNION ALL
SELECT 1, 2 FROM DUAL
) t
alias
- The alias namefieldAliases
- The field aliases. Excess aliases are ignored,
missing aliases will be substituted by this table's field
names.@Support Table<R> as(java.lang.String alias, java.util.function.Function<? super Field<?>,? extends java.lang.String> aliasFunction)
This works like as(String, String...)
, except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", f -> "prefix_" + f.getName());
alias
- The alias namealiasFunction
- The function providing field aliases.@Support Table<R> as(java.lang.String alias, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends java.lang.String> aliasFunction)
This works like as(String, String...)
, except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", (f, i) -> "column" + i);
alias
- The alias namealiasFunction
- The function providing field aliases.@Support Table<R> as(Name alias)
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle()
and the Name
. By default,
table aliases are quoted, and thus case-sensitive - use
DSL.unquotedName(String...)
for case-insensitive aliases.
If the argument Name.getName()
is qualified, then the
Name.last()
part will be used.
alias
- The alias name@Support Table<R> as(Name alias, Name... fieldAliases)
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle()
and the Name
. By default,
table aliases are quoted, and thus case-sensitive - use
DSL.unquotedName(String...)
for case-insensitive aliases.
If the argument Name.getName()
is qualified, then the
Name.last()
part will be used.
Note, not all databases support derived column lists for their table
aliases. On the other hand, some databases do support derived column
lists, but only for derived tables. jOOQ will try to turn table
references into derived tables to make this syntax work. In other words,
the following statements are equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM my_table t(a, b)
-- Nesting table references within derived tables (e.g. SQL Server)
SELECT t.a, t.b
FROM (
SELECT * FROM my_table
) t(a, b)
Other databases may not support derived column lists at all, but they do
support common table expressions. The following statements are
equivalent:
-- Using derived column lists to rename columns (e.g. Postgres)
SELECT t.a, t.b
FROM (
SELECT 1, 2
) AS t(a, b)
-- Using UNION ALL to produce column names (e.g. MySQL)
SELECT t.a, t.b
FROM (
SELECT null a, null b FROM DUAL WHERE 1 = 0
UNION ALL
SELECT 1, 2 FROM DUAL
) t
alias
- The alias namefieldAliases
- The field aliases. Excess aliases are ignored,
missing aliases will be substituted by this table's field
names.@Support Table<R> as(Name alias, java.util.function.Function<? super Field<?>,? extends Name> aliasFunction)
This works like as(Name, Name...)
, except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", f -> "prefix_" + f.getName());
alias
- The alias namealiasFunction
- The function providing field aliases.@Support Table<R> as(Name alias, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Name> aliasFunction)
This works like as(Name, Name...)
, except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", (f, i) -> "column" + i);
alias
- The alias namealiasFunction
- The function providing field aliases.@Support Table<R> as(Table<?> otherTable)
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle()
. By default, table aliases are
quoted, and thus case-sensitive!
otherTable
- The other table whose name this table is aliased with.@Support Table<R> as(Table<?> otherTable, Field<?>... otherFields)
Note that the case-sensitivity of the returned table depends on
Settings.getRenderNameStyle()
. By default, table aliases are
quoted, and thus case-sensitive!
otherTable
- The other table whose name this table is aliased with.otherFields
- The other fields whose field name this table's fields
are aliased with.@Support Table<R> as(Table<?> otherTable, java.util.function.Function<? super Field<?>,? extends Field<?>> aliasFunction)
This works like as(Table, Field...)
, except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as(MY_OTHER_TABLE, f -> MY_OTHER_TABLE.field(f));
otherTable
- The other table whose name is used as alias namealiasFunction
- The function providing field aliases.@Support Table<R> as(Table<?> otherTable, java.util.function.BiFunction<? super Field<?>,? super java.lang.Integer,? extends Field<?>> aliasFunction)
This works like as(Table, Field...)
, except that field aliases
are provided by a function. This is useful, for instance, to prefix all
columns with a common prefix:
MY_TABLE.as("t1", (f, i) -> "column" + i);
otherTable
- The other table whose name is used as alias namealiasFunction
- The function providing field aliases.@Support TableOptionalOnStep<Record> join(TableLike<?> table, JoinType type)
JoinType
Depending on the JoinType
, a subsequent
TableOnStep.on(Condition...)
or
TableOnStep.using(Field...)
clause is required. If it is required
but omitted, a DSL.trueCondition()
, i.e. 1 = 1
condition will be rendered
@Support TableOnStep<Record> join(TableLike<?> table)
INNER JOIN
a table to this table.
A synonym for innerJoin(TableLike)
.
innerJoin(TableLike)
@Support @PlainSQL TableOnStep<Record> join(SQL sql)
INNER JOIN
a table to this table.
A synonym for innerJoin(String)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
innerJoin(SQL)
,
SQL
@Support @PlainSQL TableOnStep<Record> join(java.lang.String sql)
INNER JOIN
a table to this table.
A synonym for innerJoin(String)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
innerJoin(String)
,
SQL
@Support @PlainSQL TableOnStep<Record> join(java.lang.String sql, java.lang.Object... bindings)
INNER JOIN
a table to this table.
A synonym for innerJoin(String, Object...)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL TableOnStep<Record> join(java.lang.String sql, QueryPart... parts)
INNER JOIN
a table to this table.
A synonym for innerJoin(String, QueryPart...)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL TableOnStep<Record> join(Name name)
INNER JOIN
a table to this table.
A synonym for innerJoin(Name)
.
DSL.table(Name)
,
innerJoin(Name)
@Support TableOnStep<Record> innerJoin(TableLike<?> table)
INNER JOIN
a table to this table.@Support @PlainSQL TableOnStep<Record> innerJoin(SQL sql)
INNER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support @PlainSQL TableOnStep<Record> innerJoin(java.lang.String sql)
INNER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support @PlainSQL TableOnStep<Record> innerJoin(java.lang.String sql, java.lang.Object... bindings)
INNER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL TableOnStep<Record> innerJoin(java.lang.String sql, QueryPart... parts)
INNER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support TableOnStep<Record> innerJoin(Name name)
INNER JOIN
a table to this table.DSL.table(Name)
@Support(value=ORACLE) TableOuterJoinStep<Record> partitionBy(Field<?>... fields)
PARTITION BY
clause to the left hand side of the
OUTER JOIN
keywords@Support(value=ORACLE) TableOuterJoinStep<Record> partitionBy(java.util.Collection<? extends Field<?>> fields)
PARTITION BY
clause to the left hand side of the
OUTER JOIN
keywords@Support TablePartitionByStep<Record> leftJoin(TableLike<?> table)
LEFT OUTER JOIN
a table to this table.
A synonym for leftOuterJoin(TableLike)
.
leftOuterJoin(TableLike)
@Support @PlainSQL TablePartitionByStep<Record> leftJoin(SQL sql)
LEFT OUTER JOIN
a table to this table.
A synonym for leftOuterJoin(String)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
leftOuterJoin(SQL)
,
SQL
@Support @PlainSQL TablePartitionByStep<Record> leftJoin(java.lang.String sql)
LEFT OUTER JOIN
a table to this table.
A synonym for leftOuterJoin(String)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
leftOuterJoin(String)
,
SQL
@Support @PlainSQL TablePartitionByStep<Record> leftJoin(java.lang.String sql, java.lang.Object... bindings)
LEFT OUTER JOIN
a table to this table.
A synonym for leftOuterJoin(String, Object...)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL TablePartitionByStep<Record> leftJoin(java.lang.String sql, QueryPart... parts)
LEFT OUTER JOIN
a table to this table.
A synonym for leftOuterJoin(String, QueryPart...)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support TablePartitionByStep<Record> leftJoin(Name name)
LEFT OUTER JOIN
a table to this table.
A synonym for leftOuterJoin(Name)
.
DSL.table(Name)
,
leftOuterJoin(Name)
@Support TablePartitionByStep<Record> leftOuterJoin(TableLike<?> table)
LEFT OUTER JOIN
a table to this table.@Support @PlainSQL TablePartitionByStep<Record> leftOuterJoin(SQL sql)
LEFT OUTER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support @PlainSQL TablePartitionByStep<Record> leftOuterJoin(java.lang.String sql)
LEFT OUTER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support @PlainSQL TablePartitionByStep<Record> leftOuterJoin(java.lang.String sql, java.lang.Object... bindings)
LEFT OUTER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL TablePartitionByStep<Record> leftOuterJoin(java.lang.String sql, QueryPart... parts)
LEFT OUTER JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support TablePartitionByStep<Record> leftOuterJoin(Name name)
LEFT OUTER JOIN
a table to this table.DSL.table(Name)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TablePartitionByStep<Record> rightJoin(TableLike<?> table)
RIGHT OUTER JOIN
a table to this table.
A synonym for rightOuterJoin(TableLike)
.
This is only possible where the underlying RDBMS supports it.
rightOuterJoin(TableLike)
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightJoin(SQL sql)
RIGHT OUTER JOIN
a table to this table.
A synonym for rightOuterJoin(String)
.
This is only possible where the underlying RDBMS supports it.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
rightOuterJoin(SQL)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightJoin(java.lang.String sql)
RIGHT OUTER JOIN
a table to this table.
A synonym for rightOuterJoin(String)
.
This is only possible where the underlying RDBMS supports it.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
rightOuterJoin(String)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightJoin(java.lang.String sql, java.lang.Object... bindings)
RIGHT OUTER JOIN
a table to this table.
A synonym for rightOuterJoin(String, Object...)
.
This is only possible where the underlying RDBMS supports it.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightJoin(java.lang.String sql, QueryPart... parts)
RIGHT OUTER JOIN
a table to this table.
A synonym for rightOuterJoin(String, QueryPart...)
.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TablePartitionByStep<Record> rightJoin(Name name)
RIGHT OUTER JOIN
a table to this table.
A synonym for rightOuterJoin(Name)
.
This is only possible where the underlying RDBMS supports it
DSL.table(Name)
,
rightOuterJoin(Name)
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TablePartitionByStep<Record> rightOuterJoin(TableLike<?> table)
RIGHT OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightOuterJoin(SQL sql)
RIGHT OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightOuterJoin(java.lang.String sql)
RIGHT OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightOuterJoin(java.lang.String sql, java.lang.Object... bindings)
RIGHT OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TablePartitionByStep<Record> rightOuterJoin(java.lang.String sql, QueryPart... parts)
RIGHT OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TablePartitionByStep<Record> rightOuterJoin(Name name)
RIGHT OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
DSL.table(Name)
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TableOnStep<Record> fullJoin(TableLike<?> table)
FULL OUTER JOIN
a table to this table.
A synonym for fullOuterJoin(TableLike)
.
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullJoin(SQL sql)
FULL OUTER JOIN
a table to this table.
A synonym for fullOuterJoin(SQL)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullJoin(java.lang.String sql)
FULL OUTER JOIN
a table to this table.
A synonym for fullOuterJoin(String)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullJoin(java.lang.String sql, java.lang.Object... bindings)
FULL OUTER JOIN
a table to this table.
A synonym for fullOuterJoin(String, Object...)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullJoin(java.lang.String sql, QueryPart... parts)
FULL OUTER JOIN
a table to this table.
A synonym for fullOuterJoin(String, QueryPart...)
.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TableOnStep<Record> fullJoin(Name name)
FULL OUTER JOIN
a table to this table.
A synonym for fullOuterJoin(Name)
.
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TableOnStep<Record> fullOuterJoin(TableLike<?> table)
FULL OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullOuterJoin(SQL sql)
FULL OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullOuterJoin(java.lang.String sql)
FULL OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullOuterJoin(java.lang.String sql, java.lang.Object... bindings)
FULL OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL TableOnStep<Record> fullOuterJoin(java.lang.String sql, QueryPart... parts)
FULL OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={DB2,FIREBIRD,HANA,HSQLDB,INFORMIX,INGRES,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) TableOnStep<Record> fullOuterJoin(Name name)
FULL OUTER JOIN
a table to this table.
This is only possible where the underlying RDBMS supports it
DSL.table(Name)
@Support(value={ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLITE,SQLSERVER,SYBASE,VERTICA}) Table<Record> crossJoin(TableLike<?> table)
CROSS JOIN
a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN
. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
@Support(value={ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLITE,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> crossJoin(SQL sql)
CROSS JOIN
a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN
. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value={ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLITE,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> crossJoin(java.lang.String sql)
CROSS JOIN
a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN
. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value={ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLITE,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> crossJoin(java.lang.String sql, java.lang.Object... bindings)
CROSS JOIN
a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN
. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLITE,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> crossJoin(java.lang.String sql, QueryPart... parts)
CROSS JOIN
a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN
. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HANA,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLITE,SQLSERVER,SYBASE,VERTICA}) Table<Record> crossJoin(Name name)
CROSS JOIN
a table to this table.
If this syntax is unavailable, it is emulated with a regular
INNER JOIN
. The following two constructs are equivalent:
A cross join B
A join B on 1 = 1
DSL.table(Name)
@Support Table<Record> naturalJoin(TableLike<?> table)
NATURAL JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
@Support @PlainSQL Table<Record> naturalJoin(SQL sql)
NATURAL JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support @PlainSQL Table<Record> naturalJoin(java.lang.String sql)
NATURAL JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support @PlainSQL Table<Record> naturalJoin(java.lang.String sql, java.lang.Object... bindings)
NATURAL JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support Table<Record> naturalJoin(Name name)
NATURAL JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
DSL.table(Name)
@Support @PlainSQL Table<Record> naturalJoin(java.lang.String sql, QueryPart... parts)
NATURAL JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support Table<Record> naturalLeftOuterJoin(TableLike<?> table)
NATURAL LEFT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
@Support @PlainSQL Table<Record> naturalLeftOuterJoin(SQL sql)
NATURAL LEFT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support @PlainSQL Table<Record> naturalLeftOuterJoin(java.lang.String sql)
NATURAL LEFT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support @PlainSQL Table<Record> naturalLeftOuterJoin(java.lang.String sql, java.lang.Object... bindings)
NATURAL LEFT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL Table<Record> naturalLeftOuterJoin(java.lang.String sql, QueryPart... parts)
NATURAL LEFT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support @PlainSQL Table<Record> naturalLeftOuterJoin(Name name)
NATURAL LEFT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
DSL.table(Name)
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) Table<Record> naturalRightOuterJoin(TableLike<?> table)
NATURAL RIGHT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> naturalRightOuterJoin(SQL sql)
NATURAL RIGHT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> naturalRightOuterJoin(java.lang.String sql)
NATURAL RIGHT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> naturalRightOuterJoin(java.lang.String sql, java.lang.Object... bindings)
NATURAL RIGHT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) @PlainSQL Table<Record> naturalRightOuterJoin(java.lang.String sql, QueryPart... parts)
NATURAL RIGHT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ACCESS,ASE,CUBRID,DB2,DERBY,FIREBIRD,H2,HSQLDB,INFORMIX,INGRES,MARIADB,MYSQL,ORACLE,POSTGRES,SQLSERVER,SYBASE,VERTICA}) Table<Record> naturalRightOuterJoin(Name name)
NATURAL RIGHT OUTER JOIN
a table to this table.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
DSL.table(Name)
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) Table<Record> crossApply(TableLike<?> table)
CROSS APPLY
a table to this table.@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> crossApply(SQL sql)
CROSS APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> crossApply(java.lang.String sql)
CROSS APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> crossApply(java.lang.String sql, java.lang.Object... bindings)
CROSS APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> crossApply(java.lang.String sql, QueryPart... parts)
CROSS APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) Table<Record> crossApply(Name name)
CROSS APPLY
a table to this table.DSL.table(Name)
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) Table<Record> outerApply(TableLike<?> table)
OUTER APPLY
a table to this table.@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> outerApply(SQL sql)
OUTER APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> outerApply(java.lang.String sql)
OUTER APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> outerApply(java.lang.String sql, java.lang.Object... bindings)
OUTER APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) @PlainSQL Table<Record> outerApply(java.lang.String sql, QueryPart... parts)
OUTER APPLY
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value={ORACLE12C,POSTGRES_9_3,SQLSERVER,SYBASE}) Table<Record> outerApply(Name name)
OUTER APPLY
a table to this table.DSL.table(Name)
@Support(value=MYSQL) TableOnStep<Record> straightJoin(TableLike<?> table)
STRAIGHT_JOIN
a table to this table.@Support(value=MYSQL) @PlainSQL TableOnStep<Record> straightJoin(SQL sql)
STRAIGHT_JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(SQL)
,
SQL
@Support(value=MYSQL) @PlainSQL TableOnStep<Record> straightJoin(java.lang.String sql)
STRAIGHT_JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
DSL.table(String)
,
SQL
@Support(value=MYSQL) @PlainSQL TableOnStep<Record> straightJoin(java.lang.String sql, java.lang.Object... bindings)
STRAIGHT_JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value=MYSQL) @PlainSQL TableOnStep<Record> straightJoin(java.lang.String sql, QueryPart... parts)
STRAIGHT_JOIN
a table to this table.
NOTE: When inserting plain SQL into jOOQ objects, you must guarantee syntax integrity. You may also create the possibility of malicious SQL injection. Be sure to properly use bind variables and/or escape literals when concatenated into SQL clauses!
@Support(value=MYSQL) @PlainSQL TableOnStep<Record> straightJoin(Name name)
STRAIGHT_JOIN
a table to this table.DSL.table(Name)
@Support Condition eq(Table<R> table)
This is a convenience method for self-joins, comparing complete records between tables.
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.eq(b));
equal(Table)
@Support Condition equal(Table<R> table)
This is a convenience method for self-joins, comparing complete records between tables.
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.equal(b));
boolean equals(java.lang.Object other)
QueryPart
can be considered equal to
another QueryPart
.
In general, QueryPart
equality is defined in terms of
QueryPart.toString()
equality. In other words, two query parts are
considered equal if their rendered SQL (with inlined bind variables) is
equal. This means that the two query parts do not necessarily have to be
of the same type.
Some QueryPart
implementations may choose to override this
behaviour for improved performance, as QueryPart.toString()
is an
expensive operation, if called many times.
Watch out! This is Object.equals(Object)
, not a jOOQ DSL
feature!
@Support Condition ne(Table<R> table)
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.ne(b));
notEqual(Table)
@Support Condition notEqual(Table<R> table)
This is a convenience method for self-joins, comparing complete records between tables.
For example:
MyTable a = MY_TABLE.as("a");
MyTable b = MY_TABLE.as("b");
DSL.using(configuration)
.select()
.from(a)
.join(b).on(a.notEqual(b));
@Support(value={MARIADB,MYSQL}) Table<R> useIndex(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndex("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> useIndexForJoin(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForJoin("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> useIndexForOrderBy(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForOrderBy("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> useIndexForGroupBy(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForGroupBy("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> ignoreIndex(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndex("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> ignoreIndexForJoin(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForJoin("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> ignoreIndexForOrderBy(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForOrderBy("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> ignoreIndexForGroupBy(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForGroupBy("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> forceIndex(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndex("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> forceIndexForJoin(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForJoin("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> forceIndexForOrderBy(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForOrderBy("MY_INDEX")
.fetch();
@Support(value={MARIADB,MYSQL}) Table<R> forceIndexForGroupBy(java.lang.String... indexes)
Example:
create.select()
.from(BOOK.as("b").useIndexForGroupBy("MY_INDEX")
.fetch();
@Support(value={SQLSERVER,SYBASE}) Table<R> with(java.lang.String hint)
This makes sense only on an actual database table or view, not on other composed table sources.
Example:
create.select()
.from(BOOK.as("b").with("READUNCOMMITTED")
.fetch();
For SQLDialect.ORACLE
style hints, see
SelectFromStep.hint(String)
and SelectQuery.addHint(String)
@Support(value={ORACLE11G,ORACLE12C}) PivotForStep pivot(Field<?>... aggregateFunctions)
TABLE
reference from this table, pivoting it
into another form.
This has been observed to work with
SQLDialect.ORACLE11G
upwardsSQLDialect.SQLSERVER
(not yet officially supported)aggregateFunctions
- The aggregate functions used for pivoting.PIVOT
expression@Support(value={ORACLE11G,ORACLE12C}) PivotForStep pivot(java.util.Collection<? extends Field<?>> aggregateFunctions)
TABLE
reference from this table, pivoting it
into another form.
For more details, see pivot(Field...)
aggregateFunctions
- The aggregate functions used for pivoting.PIVOT
expressionpivot(Field...)
@Support DivideByOnStep divideBy(Table<?> divisor)
TABLE
reference from this table, applying
relational division.
Relational division is the inverse of a cross join operation. The
following is an approximate definition of a relational division:
Assume the following cross join / cartesian product
C = A × B
Then it can be said that
A = C ÷ B
B = C ÷ A
With jOOQ, you can simplify using relational divisions by using the
following syntax:
C.divideBy(B).on(C.ID.equal(B.C_ID)).returning(C.TEXT)
The above roughly translates to
SELECT DISTINCT C.TEXT FROM C "c1"
WHERE NOT EXISTS (
SELECT 1 FROM B
WHERE NOT EXISTS (
SELECT 1 FROM C "c2"
WHERE "c2".TEXT = "c1".TEXT
AND "c2".ID = B.C_ID
)
)
Or in plain text: Find those TEXT values in C whose ID's correspond to
all ID's in B. Note that from the above SQL statement, it is immediately
clear that proper indexing is of the essence. Be sure to have indexes on
all columns referenced from the on(...)
and
returning(...)
clauses.
For more information about relational division and some nice, real-life examples, see
This has been observed to work with all dialects
@Support TableOnStep<R> leftSemiJoin(TableLike<?> table)
LEFT SEMI JOIN
clause that translates to an
equivalent EXISTS
predicate.
The following two SQL snippets are semantically equivalent:
-- Using LEFT SEMI JOIN
FROM A
LEFT SEMI JOIN B
ON A.ID = B.ID
-- Using WHERE EXISTS
FROM A
WHERE EXISTS (
SELECT 1 FROM B WHERE A.ID = B.ID
)
@Support TableOnStep<R> leftAntiJoin(TableLike<?> table)
LEFT ANTI JOIN
clause that translates to an
equivalent NOT EXISTS
predicate.
The following two SQL snippets are semantically equivalent:
-- Using LEFT ANTI JOIN
FROM A
LEFT ANTI JOIN B
ON A.ID = B.ID
-- Using WHERE NOT EXISTS
FROM A
WHERE NOT EXISTS (
SELECT 1 FROM B WHERE A.ID = B.ID
)
@Support(value=ORACLE) VersionsBetweenAndStep<R,java.lang.Number> versionsBetweenScn(java.lang.Number scn)
SQLDialect.ORACLE
flashback versions query clause from
this table.@Support(value=ORACLE) VersionsBetweenAndStep<R,java.lang.Number> versionsBetweenScn(Field<? extends java.lang.Number> scn)
SQLDialect.ORACLE
flashback versions query clause from
this table.@Support(value=ORACLE) VersionsBetweenAndStep<R,java.lang.Number> versionsBetweenScnMinvalue()
SQLDialect.ORACLE
flashback versions query clause from
this table.@Support(value=ORACLE) VersionsBetweenAndStep<R,java.sql.Timestamp> versionsBetweenTimestamp(java.sql.Timestamp timestamp)
SQLDialect.ORACLE
flashback versions query clause from
this table.@Support(value=ORACLE) VersionsBetweenAndStep<R,java.sql.Timestamp> versionsBetweenTimestamp(Field<java.sql.Timestamp> timestamp)
SQLDialect.ORACLE
flashback versions query clause from
this table.@Support(value=ORACLE) VersionsBetweenAndStep<R,java.sql.Timestamp> versionsBetweenTimestampMinvalue()
SQLDialect.ORACLE
flashback versions query clause from
this table.@Support(value=ORACLE) Table<R> asOfScn(java.lang.Number scn)
SQLDialect.ORACLE
flashback query clause from this
table.@Support(value=ORACLE) Table<R> asOfScn(Field<? extends java.lang.Number> scn)
SQLDialect.ORACLE
flashback query clause from this
table.@Support(value=ORACLE) Table<R> asOfTimestamp(java.sql.Timestamp timestamp)
SQLDialect.ORACLE
flashback query clause from this
table.@Support(value=ORACLE) Table<R> asOfTimestamp(Field<java.sql.Timestamp> timestamp)
SQLDialect.ORACLE
flashback query clause from this
table.R from(Record record)
Record.into(Table)
.
This method can be used in its method reference form conveniently on a
generated table, for instance, when mapping records in a stream:
DSL.using(configuration)
.fetch("select * from t")
.stream()
.map(MY_TABLE::into)
.forEach(System.out::println);
Copyright © 2018. All Rights Reserved.