Skip to main content

Join

Struct Join 

Source
pub struct Join {
    pub this: Expression,
    pub on: Option<Expression>,
    pub using: Vec<Identifier>,
    pub kind: JoinKind,
    pub use_inner_keyword: bool,
    pub use_outer_keyword: bool,
    pub deferred_condition: bool,
    pub join_hint: Option<String>,
    pub match_condition: Option<Expression>,
    pub pivots: Vec<Expression>,
}
Expand description

Represent a JOIN clause between two table sources.

The join condition can be specified via on (ON predicate) or using (USING column list), but not both. The kind field determines the join type (INNER, LEFT, CROSS, etc.).

Fields§

§this: Expression

The right-hand table expression being joined.

§on: Option<Expression>

The ON condition (mutually exclusive with using).

§using: Vec<Identifier>

The USING column list (mutually exclusive with on).

§kind: JoinKind

The join type (INNER, LEFT, RIGHT, FULL, CROSS, etc.).

§use_inner_keyword: bool

Whether INNER keyword was explicitly used (INNER JOIN vs JOIN)

§use_outer_keyword: bool

Whether OUTER keyword was explicitly used (LEFT OUTER JOIN vs LEFT JOIN)

§deferred_condition: bool

Whether the ON/USING condition was deferred (assigned right-to-left for chained JOINs)

§join_hint: Option<String>

TSQL join hint: LOOP, HASH, MERGE (e.g., INNER LOOP JOIN)

§match_condition: Option<Expression>

Snowflake ASOF JOIN match condition (MATCH_CONDITION clause)

§pivots: Vec<Expression>

PIVOT/UNPIVOT operations that follow this join (Oracle/TSQL syntax)

Trait Implementations§

Source§

impl Clone for Join

Source§

fn clone(&self) -> Join

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Join

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Join

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Join

Source§

fn eq(&self, other: &Join) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Join

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Join

Auto Trait Implementations§

§

impl Freeze for Join

§

impl RefUnwindSafe for Join

§

impl Send for Join

§

impl Sync for Join

§

impl Unpin for Join

§

impl UnwindSafe for Join

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,