on method

Query<(Expr<A>, Expr<B>, Expr<C>, Expr<D>)> on(
  1. Expr<bool?> conditionBuilder(
    1. Expr<A> a,
    2. Expr<B> b,
    3. Expr<C> c,
    4. Expr<D> d,
    )
)

Create inner JOIN using conditionBuilder in the ON clause.

Implementation

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