> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# always_join_all_topics

> Controls whether all topics are included in the FULL OUTER JOIN or only those with selected fields.

Controls whether all topics defined in the composite topic are included in the `FULL OUTER JOIN` or only those with selected fields. Defaults to `false`, meaning only topics with selected fields are included for better query performance.

## Syntax

```yaml theme={null}
always_join_all_topics: <boolean>
```

## Properties

<ParamField path="always_join_all_topics" type="boolean" default="false">
  When `false` (default), only topics with selected fields are included in the `FULL OUTER JOIN`, improving performance by pruning unused topics. When `true`, all topics are included in the join regardless of whether fields are selected from them.
</ParamField>

## Behavior

By default (`always_join_all_topics: false`), Omni optimizes composite topic queries by only including topics in the `FULL OUTER JOIN` that have selected fields. This can significantly improve query performance, especially when you have several topics defined but only need measures or dimensions from a subset of them.

Setting `always_join_all_topics: true` restores the original behavior where all topics are included in the join regardless of selection. This guarantees that dimension values from all topics appear in the result, even when no fields from a particular topic are selected.

**Consider setting `always_join_all_topics: true` when:**

* You need dimension values from all topics to appear in results, even when fields from some topics aren't selected
* You're migrating from the original composite topic behavior and need to maintain backward compatibility
* The completeness of dimension values across all topics is more important than query performance

## Examples

### Default behavior (performance optimized)

In this example, if you select only fields from the `orders` topic, the `FULL OUTER JOIN` will only include `orders` rather than all three topics.

```yaml theme={null}
topics:
  - orders
  - marketing_spend
  - customer_support

# always_join_all_topics defaults to false
```

### Include all topics

In this example, all three topics are included in the `FULL OUTER JOIN` even if you only select fields from `orders`.

```yaml theme={null}
topics:
  - orders
  - marketing_spend
  - customer_support

always_join_all_topics: true
```
