---
title: "Querying"
canonical: https://trickest.com/docs/using-the-app/database-management/querying
description: "Filter a Live Table with TQL, choose visible columns, and check the matching records."
---

# Querying

## Before you start

Open a workflow you can access, select **Database**, then choose a Live Table in **Tables**. You need an existing table with imported records to check a filter against real data. [Creating a Database](./creating-database) covers table setup.

Filtering happens on the selected table. Check its name and source node in the header before entering a query.

## Writing a Query

1. Select **Filter rows** beneath the table header. If a filter is already open, edit its text.
2. Enter a TQL expression using columns in this table. For an issue table with a `source` column, try `source = "jira"`.
3. Press **Enter** to run the compact filter. Check the matching rows and the count below the grid.
4. For a longer expression, select **Expand editor**. The expanded editor provides **Run**, **Save query**, query history and **TQL syntax help**. Select **Run** to apply your changes.

<Frame editorial maxWidth="760px" darkSrc="https://res.cloudinary.com/db14crach/image/upload/v1792713976/www/docs/release-1-2-1-2026-10-23/product/table-query-dark-7a28b35a354c19fe.png" caption="A prepared filter on the issues table. Export is in the header; Run and Save query sit below the expression. Matching results are not shown.">
  <img src="https://res.cloudinary.com/db14crach/image/upload/v1792713978/www/docs/release-1-2-1-2026-10-23/product/table-query-light-c8b4315403d1efff.png" alt="Live Table header and expanded TQL editor with source equals jira, Run and Save query controls." />
</Frame>

TQL is a filter expression. Enter the condition directly, without SQL keywords such as `SELECT`, `FROM` or `WHERE`.

### Operators

| Operator | Use |
| --- | --- |
| `=` | Match an exact value |
| `!=` | Exclude an exact value |
| `>`, `<`, `>=`, `<=` | Compare values, such as numbers or dates |
| `~` | Match text or a pattern |
| `!~` | Exclude matching text |
| `AND` | Require both conditions |
| `OR` | Accept either condition |

### Basic examples

Replace these illustrative field names with columns in your selected table. Quote text and dates; leave numbers unquoted.

```text
status_code = 200
```

```text
response_time > 1000
```

```text
hostname ~ "staging"
```

```text
port != 80 AND last_seen > "2026-10-01T00:00:00Z"
```

## Grouping Conditions with Parentheses

Use parentheses when combining `AND` and `OR` so the intended groups are clear:

```text
(port = 80 OR port = 443) AND status_code = 200
```

Start with one condition whose expected matches you know. Add conditions one at a time and inspect the result after each run.

## Running a Query

Editing an expression changes the text. **Enter** in the compact filter, or **Run** in the expanded editor, requests the matching records. Wait for that request to finish before treating the visible rows as the result of your new expression.

Use **Clear filter** or **All rows**, when shown, to return to unfiltered browsing. An empty result means no records matched the applied filter; it does not prove the source workflow produced no data.

### Selecting a table and columns

Choose another table in the **Tables** rail. Each table has its own fields; check the names before reusing an expression.

Select **Columns** beside the filter controls to show or hide fields. This changes the view, not the stored schema. It also determines which columns the current-view CSV export includes.

<Frame editorial maxWidth="400px" darkSrc="https://res.cloudinary.com/db14crach/image/upload/v1792713982/www/docs/release-1-2-1-2026-10-23/product/table-columns-dark-dece407ad907cba2.png" caption="Columns controls the visible fields. Hiding a column does not delete its stored values.">
  <img src="https://res.cloudinary.com/db14crach/image/upload/v1792713983/www/docs/release-1-2-1-2026-10-23/product/table-columns-light-6a7fe1d3f5e55e75.png" alt="Columns picker for the issues table with field visibility checkboxes." />
</Frame>

## Tips

| What you see | What to check |
| --- | --- |
| A syntax or unknown-field error | Compare field names with Columns, quote text values, and reduce the expression to one condition. |
| No matching rows | Clear the filter, inspect an expected record, then compare its actual value and type with the condition. |
| `OVERLAY_QUERY_UNSUPPORTED` | This table contains locally inserted rows that reporting filters cannot read yet. Use the unfiltered view or the row API; retrying the same filter does not resolve this limitation. |
| A request failed | Keep the expression for reference and inspect the error details. A failed request is not an empty successful result. |
| An indexing failure or missing source data | Check the source run and table import state. Changing the filter cannot repair an incomplete import. |

## Next Steps

[Save a reusable view](./creating-views) or [export the current view](./exporting) once the rows and columns match your goal.

## Use a filter in a workflow

A [Database Read node](/docs/using-the-app/workflow-and-executions/using-database-read-nodes) can read all rows, one TQL filter, or a file containing semicolon-separated filters. Choose the query source explicitly; an empty Text or File configuration does not mean all rows.

---
_Markdown source of https://trickest.com/docs/using-the-app/database-management/querying._
