class FromClause(roles.AnonymizedFromClauseRole, Selectable): (source)
Known subclasses: sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.FromGrouping
, sqlalchemy.sql.selectable.Join
, sqlalchemy.sql.selectable.NamedFromClause
Represent an element that can be used within the ``FROM`` clause of a ``SELECT`` statement. The most common forms of :class:`_expression.FromClause` are the :class:`_schema.Table` and the :func:`_expression.select` constructs. Key features common to all :class:`_expression.FromClause` objects include: * a :attr:`.c` collection, which provides per-name access to a collection of :class:`_expression.ColumnElement` objects. * a :attr:`.primary_key` attribute, which is a collection of all those :class:`_expression.ColumnElement` objects that indicate the ``primary_key`` flag. * Methods to generate various derivations of a "from" clause, including :meth:`_expression.FromClause.alias`, :meth:`_expression.FromClause.join`, :meth:`_expression.FromClause.select`.
Method | alias |
Return an alias of this :class:`_expression.FromClause`. |
Method | is |
Return ``True`` if this :class:`_expression.FromClause` is 'derived' from the given ``FromClause``. |
Method | join |
Return a :class:`_expression.Join` from this :class:`_expression.FromClause` to another :class:`FromClause`. |
Method | outerjoin |
Return a :class:`_expression.Join` from this :class:`_expression.FromClause` to another :class:`FromClause`, with the "isouter" flag set to True. |
Method | select |
Return a SELECT of this :class:`_expression.FromClause`. |
Method | self |
Apply a 'grouping' to this :class:`_expression.ClauseElement`. |
Method | tablesample |
Return a TABLESAMPLE alias of this :class:`_expression.FromClause`. |
Class Variable | __visit |
Undocumented |
Class Variable | is |
Undocumented |
Class Variable | named |
Undocumented |
Class Variable | schema |
Define the 'schema' attribute for this :class:`_expression.FromClause`. |
Instance Variable | foreign |
Return the collection of :class:`_schema.ForeignKey` marker objects which this FromClause references. |
Instance Variable | primary |
Return the iterable collection of :class:`_schema.Column` objects which comprise the primary key of this :class:`_selectable.FromClause`. |
Property | c |
A synonym for :attr:`.FromClause.columns` |
Property | columns |
A named-based collection of :class:`_expression.ColumnElement` objects maintained by this :class:`_expression.FromClause`. |
Property | description |
A brief description of this :class:`_expression.FromClause`. |
Property | entity |
Return a namespace used for name-based access in SQL expressions. |
Property | exported |
A :class:`_expression.ColumnCollection` that represents the "exported" columns of this :class:`_expression.Selectable`. |
Method | _anonymous |
Undocumented |
Method | _generate |
Populate columns into an :class:`.AliasedReturnsRows` object. |
Method | _init |
Undocumented |
Method | _is |
Return ``True`` if this :class:`_expression.FromClause` and the other represent the same lexical identity. |
Method | _populate |
Called on subclasses to establish the .c collection. |
Method | _refresh |
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 |
Reset the attributes linked to the ``FromClause.c`` attribute. |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _use |
Undocumented |
Instance Variable | _columns |
Undocumented |
Property | _cols |
Undocumented |
Property | _hide |
Undocumented |
Property | _select |
Undocumented |
Inherited from AnonymizedFromClauseRole
:
Class Variable | __slots__ |
Undocumented |
Inherited from FromClauseRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
):
Class Variable | _is |
Undocumented |
Class Variable | _role |
Undocumented |
Inherited from AllowsLambdaRole
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
):
Class Variable | allows |
Undocumented |
Inherited from UsesInspection
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
):
Class Variable | uses |
Undocumented |
Class Variable | _post |
Undocumented |
Inherited from Selectable
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
):
Method | corresponding |
Given a :class:`_expression.ColumnElement`, return the exported :class:`_expression.ColumnElement` object from the :attr:`_expression.Selectable.exported_columns` collection of this :class:`_expression... |
Method | lateral |
Return a LATERAL alias of this :class:`_expression.Selectable`. |
Method | replace |
Replace all occurrences of :class:`_expression.FromClause` 'old' with the given :class:`_expression.Alias` object, returning a copy of this :class:`_expression.FromClause`. |
Inherited from ReturnsRows
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
):
Property | selectable |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Property | _all |
A sequence of column expression objects that represents the "selected" columns of this :class:`_expression.ReturnsRows`. |
Inherited from DQLDMLClauseElement
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
):
Method | compile |
Compile this SQL expression. |
Method | _compiler |
Return a compiler appropriate for this ClauseElement, given a Dialect. |
Inherited from ClauseElement
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
):
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | compare |
Compare this :class:`_expression.ClauseElement` to the given :class:`_expression.ClauseElement`. |
Method | get |
Return immediate child :class:`.visitors.HasTraverseInternals` elements of this :class:`.visitors.HasTraverseInternals`. |
Method | params |
Return a copy with :func:`_expression.bindparam` elements replaced. |
Method | unique |
Return a copy with :func:`_expression.bindparam` elements replaced. |
Class Variable | is |
Undocumented |
Class Variable | is |
Undocumented |
Class Variable | negation |
Undocumented |
Method | _clone |
Create a shallow copy of this ClauseElement. |
Method | _cloned |
Return the set consisting all cloned ancestors of this ClauseElement. |
Method | _compile |
Undocumented |
Method | _execute |
Undocumented |
Method | _execute |
an additional hook for subclasses to provide a different implementation for connection.scalar() vs. connection.execute(). |
Method | _negate |
Undocumented |
Method | _negate |
a hook to allow the right side of a binary expression to respond to a negation of the binary expression. |
Method | _replace |
Undocumented |
Method | _set |
Undocumented |
Method | _ungroup |
Return this :class:`_expression.ClauseElement` without any groupings. |
Method | _with |
in the context of binary expression, convert the type of this object to the one given. |
Class Variable | _cache |
Undocumented |
Class Variable | _gen |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Class Variable | _is |
Undocumented |
Instance Variable | _propagate |
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. |
Property | _from |
Undocumented |
Property | _order |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
):
Method | _annotate |
return a copy of this ClauseElement with annotations updated by the given dictionary. |
Method | _deannotate |
return a copy of this :class:`_expression.ClauseElement` with annotations removed. |
Method | _with |
return a copy of this ClauseElement with annotations replaced by the given dictionary. |
Inherited from SupportsAnnotations
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
):
Class Variable | proxy |
Undocumented |
Method | _gen |
Undocumented |
Property | _annotations |
Undocumented |
Inherited from MemoizedHasCacheKey
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
):
Method | _generate |
return a cache key. |
Inherited from HasCacheKey
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
):
Class Variable | inherit |
Indicate if this :class:`.HasCacheKey` instance should make use of the cache key generation scheme used by its immediate superclass. |
Class Method | _generate |
generate cache key dispatcher for a new class. |
Class Method | _generate |
Undocumented |
Method | _gen |
return an optional cache key. |
Class Variable | _generated |
Undocumented |
Class Variable | _hierarchy |
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 |
Undocumented |
Inherited from HasCopyInternals
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
, HasCacheKey
):
Method | _copy |
Reassign internal elements to be clones of themselves. |
Inherited from HasTraverseInternals
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
, HasCacheKey
, HasCopyInternals
, ExternallyTraversible
):
Class Variable | _traverse |
Undocumented |
Inherited from CompilerElement
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
, HasCacheKey
, HasCopyInternals
, ExternallyTraversible
, HasTraverseInternals
):
Method | __str__ |
Undocumented |
Class Variable | stringify |
Undocumented |
Class Variable | supports |
Undocumented |
Inherited from Visitable
(via AnonymizedFromClauseRole
, StrictFromClauseRole
, FromClauseRole
, ColumnsClauseRole
, JoinTargetRole
, AllowsLambdaRole
, UsesInspection
, ColumnListRole
, StructuralRole
, Selectable
, ReturnsRows
, ReturnsRowsRole
, SQLRole
, DQLDMLClauseElement
, ClauseElement
, SupportsWrappingAnnotations
, SupportsAnnotations
, MemoizedHasCacheKey
, HasCacheKey
, HasCopyInternals
, ExternallyTraversible
, HasTraverseInternals
, CompilerElement
):
Method | __class |
Undocumented |
Method | __init |
Undocumented |
Class Method | _generate |
Undocumented |
Method | _compiler |
Undocumented |
Class Variable | _original |
Undocumented |
sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.CTE
, sqlalchemy.sql.selectable.FromGrouping
, sqlalchemy.sql.selectable.TableValuedAlias
, sqlalchemy.sql.selectable.TableValuedAlias
, sqlalchemy.sql.selectable.Values
Return an alias of this :class:`_expression.FromClause`. E.g.:: a2 = some_table.alias('a2') The above code creates an :class:`_expression.Alias` object which can be used as a FROM clause in any SELECT statement. .. seealso:: :ref:`tutorial_using_aliases` :func:`_expression.alias`
sqlalchemy.sql.selectable.AliasedReturnsRows
, sqlalchemy.sql.selectable.FromGrouping
, sqlalchemy.sql.selectable.Join
Return ``True`` if this :class:`_expression.FromClause` is 'derived' from the given ``FromClause``. An example would be an Alias of a Table is derived from that Table.
_FromClauseArgument
, onclause: Optional[ _ColumnExpressionArgument[ bool]]
= None, isouter: bool
= False, full: bool
= False) -> Join
:
(source)
¶
sqlalchemy.orm.util._ORMJoin
Return a :class:`_expression.Join` from this :class:`_expression.FromClause` to another :class:`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 :param right: the right side of the join; this is any :class:`_expression.FromClause` object such as a :class:`_schema.Table` object, and may also be a selectable-compatible object such as an ORM-mapped class. :param onclause: a SQL expression representing the ON clause of the join. If left at ``None``, :meth:`_expression.FromClause.join` will attempt to join the two tables based on a foreign key relationship. :param isouter: if True, render a LEFT OUTER JOIN, instead of JOIN. :param full: if True, render a FULL OUTER JOIN, instead of LEFT OUTER JOIN. Implies :paramref:`.FromClause.join.isouter`. .. versionadded:: 1.1 .. seealso:: :func:`_expression.join` - standalone function :class:`_expression.Join` - the type of object produced
_FromClauseArgument
, onclause: Optional[ _ColumnExpressionArgument[ bool]]
= None, full: bool
= False) -> Join
:
(source)
¶
sqlalchemy.orm.util._ORMJoin
Return a :class:`_expression.Join` from this :class:`_expression.FromClause` to another :class:`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) :param right: the right side of the join; this is any :class:`_expression.FromClause` object such as a :class:`_schema.Table` object, and may also be a selectable-compatible object such as an ORM-mapped class. :param onclause: a SQL expression representing the ON clause of the join. If left at ``None``, :meth:`_expression.FromClause.join` will attempt to join the two tables based on a foreign key relationship. :param full: if True, render a FULL OUTER JOIN, instead of LEFT OUTER JOIN. .. versionadded:: 1.1 .. seealso:: :meth:`_expression.FromClause.join` :class:`_expression.Join`
Return a SELECT of this :class:`_expression.FromClause`. e.g.:: stmt = some_table.select().where(some_table.c.id == 5) .. seealso:: :func:`_expression.select` - general purpose method which allows for arbitrary column lists.
Optional[ OperatorType]
= None) -> Union[ FromGrouping, Self]
:
(source)
¶
Apply a 'grouping' to this :class:`_expression.ClauseElement`. This method is overridden by subclasses to return a "grouping" construct, i.e. parenthesis. In particular it's used by "binary" expressions to provide a grouping around themselves when placed into a larger expression, as well as by :func:`_expression.select` constructs when placed into the FROM clause of another :func:`_expression.select`. (Note that subqueries should be normally created using the :meth:`_expression.Select.alias` method, as many platforms require nested SELECT statements to be named). As expressions are composed together, the application of :meth:`self_group` is automatic - end-user code should never need to use this method directly. Note that SQLAlchemy's clause constructs take operator precedence into account - so parenthesis might not be needed, for example, in an expression like ``x OR (y AND z)`` - AND takes precedence over OR. The base :meth:`self_group` method of :class:`_expression.ClauseElement` just returns self.
Union[ float, Function[ Any]]
, name: Optional[ str]
= None, seed: Optional[ roles.ExpressionElementRole[ Any]]
= None) -> TableSample
:
(source)
¶
Return a TABLESAMPLE alias of this :class:`_expression.FromClause`. The return value is the :class:`_expression.TableSample` construct also provided by the top-level :func:`_expression.tablesample` function. .. versionadded:: 1.1 .. seealso:: :func:`_expression.tablesample` - usage guidelines and parameters
sqlalchemy.sql.functions.Function
, sqlalchemy.sql.selectable.Alias
, sqlalchemy.sql.selectable.CTE
, sqlalchemy.sql.selectable.Join
, sqlalchemy.sql.selectable.Lateral
, sqlalchemy.sql.selectable.Lateral
, sqlalchemy.sql.selectable.Subquery
, sqlalchemy.sql.selectable.TableClause
, sqlalchemy.sql.selectable.TableSample
, sqlalchemy.sql.selectable.TableValuedAlias
, sqlalchemy.sql.selectable.Values
Undocumented
sqlalchemy.sql.selectable.TableClause
Define the 'schema' attribute for this :class:`_expression.FromClause`. This is typically ``None`` for most objects except that of :class:`_schema.Table`, where it is taken as the value of the :paramref:`_schema.Table.schema` argument.
Return the collection of :class:`_schema.ForeignKey` marker objects which this FromClause references. Each :class:`_schema.ForeignKey` is a member of a :class:`_schema.Table`-wide :class:`_schema.ForeignKeyConstraint`. .. seealso:: :attr:`_schema.Table.foreign_key_constraints`
sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.FromGrouping
, sqlalchemy.sql.selectable.TableClause
Return the iterable collection of :class:`_schema.Column` objects which comprise the primary key of this :class:`_selectable.FromClause`. For a :class:`_schema.Table` object, this collection is represented by the :class:`_schema.PrimaryKeyConstraint` which itself is an iterable collection of :class:`_schema.Column` objects.
sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.FromGrouping
, sqlalchemy.sql.selectable.TableClause
A synonym for :attr:`.FromClause.columns` :return: a :class:`.ColumnCollection`
columns:
ReadOnlyColumnCollection[ str, KeyedColumnElement[ Any]]
=
(source)
¶
sqlalchemy.sql.functions.FunctionElement
, sqlalchemy.sql.selectable.FromGrouping
, sqlalchemy.sql.selectable.TableClause
A named-based collection of :class:`_expression.ColumnElement` objects maintained by this :class:`_expression.FromClause`. The :attr:`.columns`, or :attr:`.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) :return: a :class:`.ColumnCollection` object.
sqlalchemy.sql.selectable.AliasedReturnsRows
, sqlalchemy.sql.selectable.Join
, sqlalchemy.sql.selectable.TableClause
A brief description of this :class:`_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.
exported_columns:
ReadOnlyColumnCollection[ str, KeyedColumnElement[ Any]]
=
(source)
¶
A :class:`_expression.ColumnCollection` that represents the "exported" columns of this :class:`_expression.Selectable`. The "exported" columns for a :class:`_expression.FromClause` object are synonymous with the :attr:`_expression.FromClause.columns` collection. .. versionadded:: 1.4 .. seealso:: :attr:`_expression.Selectable.exported_columns` :attr:`_expression.SelectBase.exported_columns`
Optional[ str]
= None, flat: bool
= False) -> FromClause
:
(source)
¶
Undocumented
Return ``True`` if this :class:`_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.selectable.AliasedReturnsRows
, sqlalchemy.sql.selectable.Join
, sqlalchemy.sql.selectable.Values
Called on subclasses to establish the .c collection. Each implementation has a different way of establishing this collection.
sqlalchemy.sql.selectable.AliasedReturnsRows
, sqlalchemy.sql.selectable.Join
, sqlalchemy.sql.selectable.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.