# QBCondition

## Overview

The `QBCondition` class is a wrapper for conditions used in a `QBSelect` query. It supports various comparison operations such as equality, ranges, patterns, and inclusion (`compare`, `in`, `like`, `between`). These conditions help refine query results by enabling precise filtering.

The `parent` property provides access to the query builder's parent table clause, which could be a query or a join clause. The `root` property allows navigation to the root query builder, facilitating integration with larger query structures.

For more information about constructing and executing queries, refer to the [QBSelect](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbselect) section of this documentation.

## Properties Summarized

| Type                                                                                                 | Name              | Summary                                                                      |
| ---------------------------------------------------------------------------------------------------- | ----------------- | ---------------------------------------------------------------------------- |
| [QBTableClause](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbtableclause) | [parent](#parent) | Get query builder parent table clause, this may be a query or a join clause. |
| [QBSelect](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbselect)           | [root](#root)     | Get query builder parent.                                                    |

## Properties Detailed

### parent

Get query builder parent table clause, this may be a query or a join clause.

**Type**\
[QBTableClause](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbtableclause)

**Sample**

```js
var query = datasources.db.example_data.person.createSelect();
	query.where.add(query.joins.person_to_parent.joins.person_to_parent.columns.name.eq('john'))
	foundset.loadRecords(query)
```

### root

Get query builder parent.

**Type**\
[QBSelect](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/qbselect)

**Sample**

```js
var subquery = datasources.db.example_data.order_details.createSelect();

	var query = datasources.db.example_data.orders.createSelect();
	query.where.add(query
		.or
			.add(query.columns.order_id.not.isin([1, 2, 3]))

			.add(query.exists(
					subquery.where.add(subquery.columns.orderid.eq(query.columns.order_id)).root
			))
		)

	foundset.loadRecords(query)
```

***
