class FromClause(roles.AnonymizedFromClauseRole, Selectable):
Known subclasses: sqlalchemy.sql.expression.AliasedReturnsRows
, sqlalchemy.sql.expression.Join
, sqlalchemy.sql.expression.TableClause
, sqlalchemy.sql.expression.Values
, sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.FromGrouping
Represent an element that can be used within the FROM clause of a SELECT statement.
The most common forms of _expression.FromClause
are the
_schema.Table
and the _expression.select
constructs. Key
features common to all _expression.FromClause
objects include:
.c
collection, which provides per-name access to a collection
of _expression.ColumnElement
objects..primary_key
attribute, which is a collection of all those
_expression.ColumnElement
objects that indicate the primary_key flag._expression.FromClause.alias
,
_expression.FromClause.join
,
_expression.FromClause.select
.Method | alias |
Return an alias of this _expression.FromClause . |
Method | is_derived_from |
Return True if this _expression.FromClause is 'derived' from the given FromClause. |
Method | join |
Return a _expression.Join from this _expression.FromClause to another FromClause . |
Method | outerjoin |
No summary |
Method | select |
Return a SELECT of this _expression.FromClause . |
Method | table_valued |
Return a _sql.TableValuedColumn object for this _expression.FromClause . |
Method | tablesample |
Return a TABLESAMPLE alias of this _expression.FromClause . |
Class Variable | c |
Undocumented |
Class Variable | schema |
Define the 'schema' attribute for this _expression.FromClause . |
Instance Variable | foreign_keys |
Return the collection of _schema.ForeignKey marker objects which this FromClause references. |
Instance Variable | primary_key |
Return the iterable collection of _schema.Column objects which comprise the primary key of this _selectable.FromClause . |
Method | _anonymous_fromclause |
Undocumented |
Method | _generate_fromclause_column_proxies |
Undocumented |
Method | _init_collections |
Undocumented |
Method | _is_lexical_equivalent |
Return True if this _expression.FromClause and the other represent the same lexical identity. |
Method | _populate_column_collection |
Called on subclasses to establish the .c collection. |
Method | _refresh_for_new_column |
Given a column added to the .c collection of an underlying selectable, produce the local version of that column, assuming this selectable ultimately should proxy this column. |
Method | _reset_column_collection |
Reset the attributes linked to the FromClause.c attribute. |
Class Variable | __visit_name__ |
Undocumented |
Class Variable | _hide_froms |
Undocumented |
Class Variable | _is_from_clause |
Undocumented |
Class Variable | _is_join |
Undocumented |
Class Variable | _select_iterable |
Undocumented |
Class Variable | _use_schema_map |
Undocumented |
Class Variable | is_selectable |
Undocumented |
Class Variable | named_with_column |
Undocumented |
Instance Variable | _columns |
Undocumented |
Property | _cols_populated |
Undocumented |
Property | columns |
A named-based collection of _expression.ColumnElement objects maintained by this _expression.FromClause . |
Property | description |
A brief description of this _expression.FromClause . |
Property | entity_namespace |
Return a namespace used for name-based access in SQL expressions. |
Property | exported_columns |
A _expression.ColumnCollection that represents the "exported" columns of this _expression.Selectable . |
Inherited from FromClauseRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
):
Class Variable | _is_subquery |
Undocumented |
Class Variable | _role_name |
Undocumented |
Inherited from AllowsLambdaRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
):
Class Variable | allows_lambda |
Undocumented |
Inherited from UsesInspection
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
):
Class Variable | _post_inspect |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SQLRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, ColumnListRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from AllowsLambdaRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, JoinTargetRole
):
Class Variable | allows_lambda |
Undocumented |
Inherited from UsesInspection
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, JoinTargetRole
):
Class Variable | _post_inspect |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SQLRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, JoinTargetRole
, StructuralRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from Selectable
:
Method | corresponding_column |
No summary |
Method | lateral |
Return a LATERAL alias of this _expression.Selectable . |
Method | replace_selectable |
Replace all occurrences of _expression.FromClause 'old' with the given _expression.Alias object, returning a copy of this _expression.FromClause . |
Inherited from ReturnsRows
(via Selectable
):
Class Variable | _is_lateral |
Undocumented |
Class Variable | _is_returns_rows |
Undocumented |
Class Variable | _is_select_statement |
Undocumented |
Property | _all_selected_columns |
A sequence of column expression objects that represents the "selected" columns of this _expression.ReturnsRows . |
Property | selectable |
Undocumented |
Inherited from ReturnsRowsRole
(via Selectable
, ReturnsRows
):
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via Selectable
, ReturnsRows
, ReturnsRowsRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from ClauseElement
(via Selectable
, ReturnsRows
):
Method | compare |
Compare this _expression.ClauseElement to the given _expression.ClauseElement . |
Method | compile |
Compile this SQL expression. |
Method | params |
Return a copy with _expression.bindparam elements replaced. |
Method | self_group |
Apply a 'grouping' to this _expression.ClauseElement . |
Method | unique_params |
Return a copy with _expression.bindparam elements replaced. |
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | _clone |
Create a shallow copy of this ClauseElement. |
Method | _cloned_set |
Return the set consisting all cloned ancestors of this ClauseElement. |
Method | _compile_w_cache |
Undocumented |
Method | _compiler |
Return a compiler appropriate for this ClauseElement, given a Dialect. |
Method | _execute_on_connection |
Undocumented |
Method | _negate |
Undocumented |
Method | _negate_in_binary |
a hook to allow the right side of a binary expression to respond to a negation of the binary expression. |
Method | _replace_params |
Undocumented |
Method | _set_propagate_attrs |
Undocumented |
Method | _ungroup |
Return this _expression.ClauseElement without any groupings. |
Method | _with_binary_element_type |
in the context of binary expression, convert the type of this object to the one given. |
Class Variable | _cache_key_traversal |
Undocumented |
Class Variable | _from_objects |
Undocumented |
Class Variable | _is_bind_parameter |
Undocumented |
Class Variable | _is_clause_list |
Undocumented |
Class Variable | _is_clone_of |
Undocumented |
Class Variable | _is_from_container |
Undocumented |
Class Variable | _is_immutable |
Undocumented |
Class Variable | _is_lambda_element |
Undocumented |
Class Variable | _is_select_container |
Undocumented |
Class Variable | _is_singleton_constant |
Undocumented |
Class Variable | _is_text_clause |
Undocumented |
Class Variable | _is_textual |
Undocumented |
Class Variable | _order_by_label_element |
Undocumented |
Class Variable | bind |
Undocumented |
Class Variable | is_clause_element |
Undocumented |
Class Variable | stringify_dialect |
Undocumented |
Class Variable | supports_execution |
Undocumented |
Instance Variable | _propagate_attrs |
like annotations, however these propagate outwards liberally as SQL constructs are built, and are set up at construction time. |
Property | _constructor |
return the 'constructor' for this ClauseElement. |
Inherited from SQLRole
(via Selectable
, ReturnsRows
, ClauseElement
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via Selectable
, ReturnsRows
, ClauseElement
):
Method | _annotate |
return a copy of this ClauseElement with annotations updated by the given dictionary. |
Method | _deannotate |
return a copy of this _expression.ClauseElement with annotations removed. |
Method | _with_annotations |
return a copy of this ClauseElement with annotations replaced by the given dictionary. |
Inherited from SupportsAnnotations
(via Selectable
, ReturnsRows
, ClauseElement
, SupportsWrappingAnnotations
):
Property | _annotations_cache_key |
Undocumented |
Inherited from MemoizedHasCacheKey
(via Selectable
, ReturnsRows
, ClauseElement
):
Method | _generate_cache_key |
return a cache key. |
Inherited from HasCacheKey
(via Selectable
, ReturnsRows
, ClauseElement
, MemoizedHasCacheKey
):
Class Variable | inherit_cache |
Indicate if this .HasCacheKey instance should make use of the cache key generation scheme used by its immediate superclass. |
Class Method | _generate_cache_attrs |
generate cache key dispatcher for a new class. |
Class Method | _generate_cache_key_for_object |
Undocumented |
Method | _gen_cache_key |
return an optional cache key. |
Class Variable | __slots__ |
Undocumented |
Class Variable | _hierarchy_supports_caching |
private attribute which may be set to False to prevent the inherit_cache warning from being emitted for a hierarchy of subclasses. |
Class Variable | _is_has_cache_key |
Undocumented |
Inherited from HasCopyInternals
(via Selectable
, ReturnsRows
, ClauseElement
):
Method | _copy_internals |
Reassign internal elements to be clones of themselves. |
Inherited from Traversible
(via Selectable
, ReturnsRows
, ClauseElement
):
Method | get_children |
Return immediate child .visitors.Traversible elements of this .visitors.Traversible . |
Method | __class_getitem__ |
Undocumented |
sqlalchemy.sql.expression.Join
, sqlalchemy.sql.expression.TableValuedAlias
, sqlalchemy.sql.expression.Values
, sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.CTE
, sqlalchemy.sql.selectable.FromGrouping
Return an alias of this _expression.FromClause
.
E.g.:
a2 = some_table.alias('a2')
The above code creates an _expression.Alias
object which can be used
as a FROM clause in any SELECT statement.
sqlalchemy.sql.expression.AliasedReturnsRows
, sqlalchemy.sql.expression.Join
, sqlalchemy.sql.selectable.FromGrouping
Return True if this _expression.FromClause
is
'derived' from the given FromClause.
An example would be an Alias of a Table is derived from that Table.
sqlalchemy.orm.util._ORMJoin
Return a _expression.Join
from this
_expression.FromClause
to another FromClause
.
E.g.:
from sqlalchemy import join j = user_table.join(address_table, user_table.c.id == address_table.c.user_id) stmt = select(user_table).select_from(j)
would emit SQL along the lines of:
SELECT user.id, user.name FROM user JOIN address ON user.id = address.user_id
See Also
_expression.join
- standalone function
_expression.Join
- the type of object produced
Parameters | |
right | the right side of the join; this is any
_expression.FromClause object such as a
_schema.Table object, and
may also be a selectable-compatible object such as an ORM-mapped
class. |
onclause | a SQL expression representing the ON clause of the
join. If left at None, _expression.FromClause.join
will attempt to
join the two tables based on a foreign key relationship. |
isouter | if True, render a LEFT OUTER JOIN, instead of JOIN. |
full | if True, render a FULL OUTER JOIN, instead of LEFT OUTER JOIN. Implies :paramref:`.FromClause.join.isouter`.
New in version 1.1.
|
sqlalchemy.orm.util._ORMJoin
Return a _expression.Join
from this
_expression.FromClause
to another FromClause
, with the "isouter" flag set to
True.
E.g.:
from sqlalchemy import outerjoin j = user_table.outerjoin(address_table, user_table.c.id == address_table.c.user_id)
The above is equivalent to:
j = user_table.join( address_table, user_table.c.id == address_table.c.user_id, isouter=True)
See Also
_expression.FromClause.join
_expression.Join
Parameters | |
right | the right side of the join; this is any
_expression.FromClause object such as a
_schema.Table object, and
may also be a selectable-compatible object such as an ORM-mapped
class. |
onclause | a SQL expression representing the ON clause of the
join. If left at None, _expression.FromClause.join
will attempt to
join the two tables based on a foreign key relationship. |
full | if True, render a FULL OUTER JOIN, instead of LEFT OUTER JOIN.
New in version 1.1.
|
Return a SELECT of this _expression.FromClause
.
e.g.:
stmt = some_table.select().where(some_table.c.id == 5)
See Also
_expression.select
- general purpose
method which allows for arbitrary column lists.
Parameters | |
whereclause | a WHERE clause, equivalent to calling the
_sql.Select.where method. |
**kwargs | additional keyword arguments are passed to the
legacy constructor for _sql.Select described at
_sql.Select.create_legacy_select . |
sqlalchemy.sql.functions.FunctionElement
Return a _sql.TableValuedColumn
object for this
_expression.FromClause
.
A _sql.TableValuedColumn
is a _sql.ColumnElement
that
represents a complete row in a table. Support for this construct is
backend dependent, and is supported in various forms by backends
such as PostgreSQL, Oracle and SQL Server.
E.g.:
>>> from sqlalchemy import select, column, func, table >>> a = table("a", column("id"), column("x"), column("y")) >>> stmt = select(func.row_to_json(a.table_valued())) >>> print(stmt) SELECT row_to_json(a) AS row_to_json_1 FROM a
See Also
Return a TABLESAMPLE alias of this _expression.FromClause
.
The return value is the _expression.TableSample
construct also
provided by the top-level _expression.tablesample
function.
See Also
_expression.tablesample
- usage guidelines and parameters
sqlalchemy.sql.expression.TableClause
Define the 'schema' attribute for this _expression.FromClause
.
This is typically None for most objects except that of
_schema.Table
, where it is taken as the value of the
:paramref:`_schema.Table.schema` argument.
set
=
Return the collection of _schema.ForeignKey
marker objects
which this FromClause references.
Each _schema.ForeignKey
is a member of a
_schema.Table
-wide
_schema.ForeignKeyConstraint
.
See Also
_schema.Table.foreign_key_constraints
Return the iterable collection of _schema.Column
objects
which comprise the primary key of this _selectable.FromClause
.
For a _schema.Table
object, this collection is represented
by the _schema.PrimaryKeyConstraint
which itself is an
iterable collection of _schema.Column
objects.
Return True if this _expression.FromClause
and
the other represent the same lexical identity.
This tests if either one is a copy of the other, or if they are the same via annotation identity.
sqlalchemy.sql.expression.AliasedReturnsRows
, sqlalchemy.sql.expression.Join
, sqlalchemy.sql.expression.Values
Called on subclasses to establish the .c collection.
Each implementation has a different way of establishing this collection.
sqlalchemy.sql.expression.AliasedReturnsRows
, sqlalchemy.sql.expression.Join
, sqlalchemy.sql.expression.TableClause
Given a column added to the .c collection of an underlying selectable, produce the local version of that column, assuming this selectable ultimately should proxy this column.
this is used to "ping" a derived selectable to add a new column to its .c. collection when a Column has been added to one of the Table objects it ultimately derives from.
If the given selectable hasn't populated its .c. collection yet, it should at least pass on the message to the contained selectables, but it will return None.
This method is currently used by Declarative to allow Table columns to be added to a partially constructed inheritance mapping that may have already produced joins. The method isn't public right now, as the full span of implications and/or caveats aren't yet clear.
It's also possible that this functionality could be invoked by default via an event, which would require that selectables maintain a weak referencing collection of all derivations.
Reset the attributes linked to the FromClause.c attribute.
This collection is separate from all the other memoized things as it has shown to be sensitive to being cleared out in situations where enclosing code, typically in a replacement traversal scenario, has already established strong relationships with the exported columns.
The collection is cleared for the case where a table is having a column added to it as well as within a Join during copy internals.
str
=
sqlalchemy.sql.expression.Alias
, sqlalchemy.sql.expression.Join
, sqlalchemy.sql.expression.Lateral
, sqlalchemy.sql.expression.Subquery
, sqlalchemy.sql.expression.TableClause
, sqlalchemy.sql.expression.TableSample
, sqlalchemy.sql.expression.Values
, sqlalchemy.sql.functions.Function
, sqlalchemy.sql.selectable.CTE
Undocumented
bool
=
sqlalchemy.sql.expression.AliasedReturnsRows
, sqlalchemy.sql.expression.TableClause
, sqlalchemy.sql.expression.Values
Undocumented
A named-based collection of _expression.ColumnElement
objects maintained by this _expression.FromClause
.
The .columns
, or .c
collection, is the gateway
to the construction of SQL expressions using table-bound or
other selectable-bound columns:
select(mytable).where(mytable.c.somecolumn == 5)
sqlalchemy.sql.expression.AliasedReturnsRows
, sqlalchemy.sql.expression.Join
, sqlalchemy.sql.expression.TableClause
A brief description of this _expression.FromClause
.
Used primarily for error message formatting.
sqlalchemy.sql.functions.FunctionElement
Return a namespace used for name-based access in SQL expressions.
This is the namespace that is used to resolve "filter_by()" type expressions, such as:
stmt.filter_by(address='some address')
It defaults to the .c collection, however internally it can be overridden using the "entity_namespace" annotation to deliver alternative results.
sqlalchemy.sql.functions.FunctionElement
A _expression.ColumnCollection
that represents the "exported"
columns of this _expression.Selectable
.
The "exported" columns for a _expression.FromClause
object are synonymous
with the _expression.FromClause.columns
collection.
See Also
_expression.Selectable.exported_columns
_expression.SelectBase.exported_columns