# `Selecto.Subfilter.SQL.InBuilder`

Builds IN subqueries for subfilters.

This strategy is useful when you need to filter the main query based on a
set of IDs returned by the subquery. It can be more performant than EXISTS
in some cases, especially when the subquery returns a small number of rows.

## Example SQL

    film_id IN (
      SELECT fc.film_id
      FROM film_category fc
      JOIN category c ON fc.category_id = c.category_id
      WHERE c.name IN ('Action', 'Comedy')
    )

# `generate`

```elixir
@spec generate(
  Selecto.Subfilter.Spec.t(),
  Selecto.Subfilter.JoinPathResolver.JoinResolution.t(),
  any()
) ::
  {:ok, String.t(), [any()]} | {:error, Selecto.Subfilter.Error.t()}
```

Generate IN subquery SQL for a given subfilter.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
