# SelectedSemiJoinSubqueryBuilder (/docs/core/reference/api/interfaces/SelectedSemiJoinSubqueryBuilder)



[@kysoql/core](/docs/core/reference/api) / SelectedSemiJoinSubqueryBuilder

Completed semi-join subquery with its selected reference field.

## Extends [#extends]

* [`SemiJoinSubqueryExpression`](/docs/core/reference/api/interfaces/SemiJoinSubqueryExpression)\<`DB`, `OuterTB`, `OuterReference`>.`SemiJoinWhereBuilder`\<`DB`, `TB`, `SelectedSemiJoinSubqueryBuilder`\<`DB`, `OuterTB`, `OuterReference`, `TB`>>

## Type Parameters [#type-parameters]

| Type Parameter                      |
| ----------------------------------- |
| `DB`                                |
| `OuterTB` *extends* keyof `DB`      |
| `OuterReference` *extends* `string` |
| `TB` *extends* keyof `DB`           |

## Methods [#methods]

<a id="api-call" />

### $call() [#call]

```ts
$call<T>(func): T;
```

Passes this builder to `func` and returns the callback result.

#### Type Parameters [#type-parameters-1]

| Type Parameter |
| -------------- |
| `T`            |

#### Parameters [#parameters]

| Parameter | Type          |
| --------- | ------------- |
| `func`    | (`qb`) => `T` |

#### Returns [#returns]

`T`

***

<a id="api-if" />

### $if() [#if]

```ts
$if(condition, func): this;
```

Conditionally applies a builder callback; when false, the runtime query is unchanged.

#### Parameters [#parameters-1]

| Parameter   | Type             |
| ----------- | ---------------- |
| `condition` | `boolean`        |
| `func`      | (`qb`) => `this` |

#### Returns [#returns-1]

`this`

***

<a id="api-clearwhere" />

### clearWhere() [#clearwhere]

```ts
clearWhere(): this;
```

Returns a builder with the `WHERE` predicate removed.

#### Returns [#returns-2]

`this`

***

<a id="api-tooperationnode" />

### toOperationNode() [#tooperationnode]

```ts
toOperationNode(): SemiJoinSubqueryNode;
```

Returns the immutable operation node represented by this builder.

#### Returns [#returns-3]

[`SemiJoinSubqueryNode`](/docs/core/reference/api/type-aliases/SemiJoinSubqueryNode)

#### Inherited from [#inherited-from]

[`SemiJoinSubqueryExpression`](/docs/core/reference/api/interfaces/SemiJoinSubqueryExpression).[`toOperationNode`](/docs/core/reference/api/interfaces/SemiJoinSubqueryExpression#tooperationnode)

***

<a id="api-where" />

### where() [#where]

#### Call Signature [#call-signature]

```ts
where(expression): SelectedSemiJoinSubqueryBuilder;
```

##### Parameters [#parameters-2]

| Parameter    | Type                                                                                                           |
| ------------ | -------------------------------------------------------------------------------------------------------------- |
| `expression` | [`WhereExpressionFactory`](/docs/core/reference/api/type-aliases/WhereExpressionFactory)\<`DB`, `TB`, `false`> |

##### Returns [#returns-4]

`SelectedSemiJoinSubqueryBuilder`

##### Inherited from [#inherited-from-1]

```ts
SemiJoinWhereBuilder.where
```

#### Call Signature [#call-signature-1]

```ts
where<RE, OP, RHS>(
   lhs,
   op,
   rhs
): SelectedSemiJoinSubqueryBuilder;
```

##### Type Parameters [#type-parameters-2]

| Type Parameter                                                                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RE` *extends* `string`                                                                                                                                                                                                                                                           |
| `OP` *extends* \| `"="` \| `"!="` \| [`OrderedComparisonOperator`](/docs/core/reference/api/type-aliases/OrderedComparisonOperator) \| `"in"` \| `"not in"` \| [`MultiSelectComparisonOperator`](/docs/core/reference/api/type-aliases/MultiSelectComparisonOperator) \| `"like"` |
| `RHS`                                                                                                                                                                                                                                                                             |

##### Parameters [#parameters-3]

| Parameter | Type                                            |
| --------- | ----------------------------------------------- |
| `lhs`     | `RE` & `FilterableFieldName`\<`DB`, `TB`, `RE`> |
| `op`      | `OP`                                            |
| `rhs`     | `RHS`                                           |

##### Returns [#returns-5]

`SelectedSemiJoinSubqueryBuilder`

##### Inherited from [#inherited-from-2]

```ts
SemiJoinWhereBuilder.where
```

## Properties [#properties]

| Property                                                                                  | Modifier   | Type             | Description                                                                                                 | Inherited from                                                                                                                                                                                                                                  |
| ----------------------------------------------------------------------------------------- | ---------- | ---------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="api-property-semijoinsubqueryexpressiontype" /> `[semiJoinSubqueryExpressionType]` | `readonly` | `object`         | Type-only brand used by Kysoql to preserve compile-time information; it has no user-facing runtime meaning. | [`SemiJoinSubqueryExpression`](/docs/core/reference/api/interfaces/SemiJoinSubqueryExpression).[`[semiJoinSubqueryExpressionType]`](/docs/core/reference/api/interfaces/SemiJoinSubqueryExpression#api-property-semijoinsubqueryexpressiontype) |
| `[semiJoinSubqueryExpressionType].db`                                                     | `readonly` | `DB`             | Schema type shared by the outer query and semi-join.                                                        | -                                                                                                                                                                                                                                               |
| `[semiJoinSubqueryExpressionType].outerTable`                                             | `readonly` | `OuterTB`        | Salesforce object queried by the outer query.                                                               | -                                                                                                                                                                                                                                               |
| `[semiJoinSubqueryExpressionType].outerReference`                                         | `readonly` | `OuterReference` | Outer field compared with the semi-join selection.                                                          | -                                                                                                                                                                                                                                               |
