pub enum JoinOperator {
Show 21 variants
Join(JoinConstraint),
Inner(JoinConstraint),
Left(JoinConstraint),
LeftOuter(JoinConstraint),
Right(JoinConstraint),
RightOuter(JoinConstraint),
FullOuter(JoinConstraint),
CrossJoin(JoinConstraint),
Semi(JoinConstraint),
LeftSemi(JoinConstraint),
RightSemi(JoinConstraint),
Anti(JoinConstraint),
LeftAnti(JoinConstraint),
RightAnti(JoinConstraint),
CrossApply,
OuterApply,
AsOf {
match_condition: Expr,
constraint: JoinConstraint,
},
StraightJoin(JoinConstraint),
ArrayJoin,
LeftArrayJoin,
InnerArrayJoin,
}Expand description
The operator used for joining two tables, e.g. INNER, LEFT, CROSS, ASOF, etc.
Variants§
Join(JoinConstraint)
Generic JOIN with an optional constraint.
Inner(JoinConstraint)
INNER JOIN with an optional constraint.
Left(JoinConstraint)
LEFT JOIN with an optional constraint.
LeftOuter(JoinConstraint)
LEFT OUTER JOIN with an optional constraint.
Right(JoinConstraint)
RIGHT JOIN with an optional constraint.
RightOuter(JoinConstraint)
RIGHT OUTER JOIN with an optional constraint.
FullOuter(JoinConstraint)
FULL OUTER JOIN with an optional constraint.
CrossJoin(JoinConstraint)
CROSS JOIN (constraint usage is non-standard).
Semi(JoinConstraint)
SEMI JOIN (non-standard)
LeftSemi(JoinConstraint)
LEFT SEMI JOIN (non-standard)
RightSemi(JoinConstraint)
RIGHT SEMI JOIN (non-standard)
Anti(JoinConstraint)
ANTI JOIN (non-standard)
LeftAnti(JoinConstraint)
LEFT ANTI JOIN (non-standard)
RightAnti(JoinConstraint)
RIGHT ANTI JOIN (non-standard)
CrossApply
CROSS APPLY (non-standard)
OuterApply
OUTER APPLY (non-standard)
AsOf
ASOF joins are used for joining time-series tables whose timestamp columns do not match exactly.
See https://docs.snowflake.com/en/sql-reference/constructs/asof-join.
Fields
constraint: JoinConstraintAdditional constraint applied to the ASOF join.
StraightJoin(JoinConstraint)
STRAIGHT_JOIN (MySQL non-standard behavior)
ArrayJoin
ClickHouse: ARRAY JOIN for unnesting arrays inline.
See https://clickhouse.com/docs/en/sql-reference/statements/select/array-join.
LeftArrayJoin
ClickHouse: LEFT ARRAY JOIN for unnesting arrays inline (preserves rows with empty arrays).
InnerArrayJoin
ClickHouse: INNER ARRAY JOIN for unnesting arrays inline (filters rows with empty arrays).
Trait Implementations§
Source§impl Clone for JoinOperator
impl Clone for JoinOperator
Source§fn clone(&self) -> JoinOperator
fn clone(&self) -> JoinOperator
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for JoinOperator
impl Debug for JoinOperator
impl Eq for JoinOperator
Source§impl Hash for JoinOperator
impl Hash for JoinOperator
Source§impl Ord for JoinOperator
impl Ord for JoinOperator
Source§fn cmp(&self, other: &JoinOperator) -> Ordering
fn cmp(&self, other: &JoinOperator) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for JoinOperator
impl PartialEq for JoinOperator
Source§fn eq(&self, other: &JoinOperator) -> bool
fn eq(&self, other: &JoinOperator) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for JoinOperator
impl PartialOrd for JoinOperator
Source§impl Spanned for JoinOperator
§partial span
Missing spans:
impl Spanned for JoinOperator
§partial span
Missing spans:
impl StructuralPartialEq for JoinOperator
Source§impl Visit for JoinOperator
impl Visit for JoinOperator
Source§impl VisitMut for JoinOperator
impl VisitMut for JoinOperator
Source§fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
VisitorMut. Read moreAuto Trait Implementations§
impl Freeze for JoinOperator
impl RefUnwindSafe for JoinOperator
impl Send for JoinOperator
impl Sync for JoinOperator
impl Unpin for JoinOperator
impl UnsafeUnpin for JoinOperator
impl UnwindSafe for JoinOperator
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more