public interface SelectOnStep<R extends Record>
Select
's DSL API when selecting generic
Record
types.
Example:
Its equivalent in jOOQ
-- get all authors' first and last names, and the number
-- of books they've written in German, if they have written
-- more than five books in German in the last three years
-- (from 2011), and sort those authors by last names
-- limiting results to the second and third row
SELECT T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME, COUNT(*)
FROM T_AUTHOR
JOIN T_BOOK ON T_AUTHOR.ID = T_BOOK.AUTHOR_ID
WHERE T_BOOK.LANGUAGE = 'DE'
AND T_BOOK.PUBLISHED > '2008-01-01'
GROUP BY T_AUTHOR.FIRST_NAME, T_AUTHOR.LAST_NAME
HAVING COUNT(*) > 5
ORDER BY T_AUTHOR.LAST_NAME ASC NULLS FIRST
LIMIT 2
OFFSET 1
FOR UPDATE
OF FIRST_NAME, LAST_NAME
NO WAIT
Refer to the manual for more details
create.select(TAuthor.FIRST_NAME, TAuthor.LAST_NAME, create.count())
.from(T_AUTHOR)
.join(T_BOOK).on(TBook.AUTHOR_ID.equal(TAuthor.ID))
.where(TBook.LANGUAGE.equal("DE"))
.and(TBook.PUBLISHED.greaterThan(parseDate('2008-01-01')))
.groupBy(TAuthor.FIRST_NAME, TAuthor.LAST_NAME)
.having(create.count().greaterThan(5))
.orderBy(TAuthor.LAST_NAME.asc().nullsFirst())
.limit(2)
.offset(1)
.forUpdate()
.of(TAuthor.FIRST_NAME, TAuthor.LAST_NAME)
.noWait();
Modifier and Type | Method and Description |
---|---|
SelectOnConditionStep<R> |
on(java.lang.Boolean condition)
Deprecated.
- 3.8.0 - [#4763] - Use
on(Condition...) or
on(Field) instead. Due to ambiguity between
calling this method using Field.equals(Object)
argument, vs. calling the other method via a
Field.equal(Object) argument, this method will be
removed in the future. |
SelectOnConditionStep<R> |
on(Condition... conditions)
|
SelectOnConditionStep<R> |
on(Field<java.lang.Boolean> condition)
Add an
ON clause to the previous JOIN . |
SelectOnConditionStep<R> |
on(SQL sql)
Add an
ON clause to the previous JOIN . |
SelectOnConditionStep<R> |
on(java.lang.String sql)
Add an
ON clause to the previous JOIN . |
SelectOnConditionStep<R> |
on(java.lang.String sql,
java.lang.Object... bindings)
Add an
ON clause to the previous JOIN . |
SelectOnConditionStep<R> |
on(java.lang.String sql,
QueryPart... parts)
Add an
ON clause to the previous JOIN . |
SelectJoinStep<R> |
onKey()
Join the previous table on a non-ambiguous foreign key relationship
between the two joined tables.
|
SelectJoinStep<R> |
onKey(ForeignKey<?,?> key)
Join the table on a non-ambiguous foreign key relationship between the
two joined tables.
|
SelectJoinStep<R> |
onKey(TableField<?,?>... keyFields)
Join the previous table on a non-ambiguous foreign key relationship
between the two joined tables.
|
SelectJoinStep<R> |
using(java.util.Collection<? extends Field<?>> fields)
Join the previous table with the
USING(column [, column...]) |
SelectJoinStep<R> |
using(Field<?>... fields)
Join the previous table with the
USING(column [, column...]) |
@Support SelectOnConditionStep<R> on(Condition... conditions)
@Support SelectOnConditionStep<R> on(Field<java.lang.Boolean> condition)
ON
clause to the previous JOIN
.@Deprecated @Support SelectOnConditionStep<R> on(java.lang.Boolean condition)
on(Condition...)
or
on(Field)
instead. Due to ambiguity between
calling this method using Field.equals(Object)
argument, vs. calling the other method via a
Field.equal(Object)
argument, this method will be
removed in the future.ON
clause to the previous JOIN
.@Support @PlainSQL SelectOnConditionStep<R> on(SQL sql)
ON
clause to the previous JOIN
.
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.condition(SQL)
,
SQL
@Support @PlainSQL SelectOnConditionStep<R> on(java.lang.String sql)
ON
clause to the previous JOIN
.
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.condition(String)
,
SQL
@Support @PlainSQL SelectOnConditionStep<R> on(java.lang.String sql, java.lang.Object... bindings)
ON
clause to the previous JOIN
.
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 SelectOnConditionStep<R> on(java.lang.String sql, QueryPart... parts)
ON
clause to the previous JOIN
.
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 SelectJoinStep<R> onKey() throws DataAccessException
See TableOnStep.onKey(ForeignKey)
for examples.
DataAccessException
- If there is no non-ambiguous key definition
known to jOOQTableOnStep.onKey(ForeignKey)
@Support SelectJoinStep<R> onKey(TableField<?,?>... keyFields) throws DataAccessException
See TableOnStep.onKey(ForeignKey)
for examples.
DataAccessException
- If there is no non-ambiguous key definition
known to jOOQTableOnStep.onKey(ForeignKey)
@Support SelectJoinStep<R> onKey(ForeignKey<?,?> key)
See TableOnStep.onKey(ForeignKey)
for examples.
TableOnStep.onKey(ForeignKey)
@Support SelectJoinStep<R> using(Field<?>... fields)
USING(column [, column...])
syntax.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
@Support SelectJoinStep<R> using(java.util.Collection<? extends Field<?>> fields)
USING(column [, column...])
syntax.
If this is not supported by your RDBMS, then jOOQ will try to emulate this behaviour using the information provided in this query.
Copyright © 2018. All Rights Reserved.