usecrate::ast::*;/// Represents an explicit join clause in a `SELECT` statement (e.g. `LEFT JOIN orders ON users.id = orders.user_id`).
#[derive(Debug, Clone, PartialEq)]pubstructJoinClause{/// The join type (e.g., `INNER`, `LEFT OUTER`, `CROSS`).
pubjoin_type: JoinType,
/// The right-hand side table reference being joined.
pubtable: TableRef,
/// The filter condition representing the `ON` clause. Unused for `CROSS JOIN`.
pubcondition:Option<Expr>,
}/// The type of join to perform.
#[derive(Debug, Clone, PartialEq)]pubenumJoinType{/// Standard inner join matching rows in both tables (`INNER JOIN`).
Inner,/// Left outer join returning all rows from the left table and matched rows from the right table (`LEFT [OUTER] JOIN`).
Left,/// Right outer join returning all rows from the right table and matched rows from the left table (`RIGHT [OUTER] JOIN`).
Right,/// Full outer join returning all rows when there is a match in either left or right table (`FULL [OUTER] JOIN`).
Full,/// Cartesian product of both tables (`CROSS JOIN`).
Cross,}