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: ExpressionThe 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: JoinKindThe join type (INNER, LEFT, RIGHT, FULL, CROSS, etc.).
use_inner_keyword: boolWhether INNER keyword was explicitly used (INNER JOIN vs JOIN)
use_outer_keyword: boolWhether OUTER keyword was explicitly used (LEFT OUTER JOIN vs LEFT JOIN)
deferred_condition: boolWhether 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)