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

# Creating tailored tables from a single dbt model

> You can use the `explores` configuration in your Lightdash Semantic Layer to curate multiple ways to query from the same table for different audiences.

## What this guide covers

You'll learn how to use the `explores` config in Lightdash to define **multiple curated table experiences** from a single dbt model.

Each explore appears as its own table in the **Query from tables** list in Lightdash.

***

## When to use explores

Use the explores config when you want to create tailored versions of the same table for different teams or use cases. For example:

* Show different columns or joins depending on the audience (e.g. Users + CRM for Sales, Users + product usage for PMs)
* Customize each version of the table to match a specific workflow or department
* Restrict access to certain versions or fields using user attributes (e.g. exec-only views, region-based filters, or hiding PII)

***

## Quickstart

<Steps>
  <Step title="Start with your base model">
    This is your regular dbt model, for example, `deals`.

    ```yaml
    models:
      - name: deals
        meta:
          primary_key: deal_id
    ```
  </Step>

  <Step title="Add an explores section under meta">
    Use the `explores` config to define multiple versions of the table. Each explore has its own `label`, `joins`, joined fields, and access rules.

    ```yaml
    models:
      - name: deals
        meta:
          primary_key: deal_id
          label: Deals (Basic)
          description: Basic deals table with no joins
          explores:
            deals_accounts:
              label: Deals w/Accounts
              description: Deals table with accounts joined in, limited acount fields included
              joins:
                - join: accounts
                  relationship: many-to-one
                  sql_on: ${deals.account_id} = ${accounts.account_id}
                  fields: [industry, segment, count_accounts]
            deals_exec_view:
              label: Deals (Exec View)
              description: Deals table with account info, for execs only, all acount fields included
              required_attributes:
                is_exec: "true"
              joins:
                - join: accounts
                  relationship: many-to-one
                  sql_on: ${deals.account_id} = ${accounts.account_id}
    ```
  </Step>

  <Step title="Preview the result in Lightdash">
    Once you commit and deploy your dbt changes:

    * Go to Query from tables in Lightdash
    * You'll now see:
      * **Deals (Basic)**
      * **Deals w/Accounts**
      * **Deals (Exec View)** (only visible to users with the required attribute)

    Each shows up as its own table in the UI, but all use the same `deals` model.
  </Step>
</Steps>

## Table config options you can use

Inside each explore definition, you can use any of the existing table config options, including:

* `label`
* `joins`
* `sql_filter`
* `description`
* `default_filters`
* `required_attributes`

[📚 Read the Tables reference docs for all configuration options](/references/tables#table-properties)
