on method

Query<(Expr<A>, Expr<B?>)> on(
  1. Expr<bool> conditionBuilder(
    1. Expr<A> a,
    2. Expr<B> b
    )
)

Create left JOIN using conditionBuilder in the ON clause.

Implementation

Query<(Expr<A>, Expr<B?>)> on(
  Expr<bool> Function(Expr<A> a, Expr<B> b) conditionBuilder,
) {
  late JoinClause join;
  final q = Query._(_from._context, (
    _from._expressions.$1,
    _join._expressions.$1,
  ), (_) => join);
  final (handle, on) = q._build(conditionBuilder);
  join = JoinClause._(
    handle,
    JoinType.left,
    _from._from(_from._expressions.toList()),
    _join._from(_join._expressions.toList()),
    on,
  );
  return q;
}