QBTableClause

Overview

The QBTableClause class is a fundamental component for building queries within the Servoy environment. It manages properties related to the table, such as `dataSource` and `tableAlias`, and provides functionality to retrieve or create columns for the query.

The class offers methods for managing the columns associated with a data source, such as getColumn() to retrieve specific columns by name, and columns() to get all available columns.

It allows for complex query construction by supporting joins, accessible via the joins() method, which handles relationships between tables. The getTable() method provides access to the underlying table associated with the data source, while getColumnNames() retrieves all the column names in the table.

Additionally, the `QBTableClause` class provides a way to find other `QBTableClause` objects through table aliases, using the findQueryBuilderTableClause() method.

The class also facilitates the dynamic creation of columns when needed, and it ensures that the correct QBColumn objects are available for query building. By supporting query table retrieval, column management, and joins, QBTableClause is integral to structuring and executing complex database queries in the Servoy environment.

Properties Summarized

Type
Name
Summary

Get all the columns of the datasource that can be used for this query (select or where clause)

Get the joins clause of this table based clause.

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

Get query builder parent.

Methods Summarized

Type
Name
Summary

Get a column from the table.

Get a column from the table with given alias.

Returns the datasource for this.

Returns the table alias for this.

Properties Detailed

columns

Get all the columns of the datasource that can be used for this query (select or where clause)

Type QBColumns

Sample

var query = foundset.getQuery();
query.result.add(query.columns.name, "name");
query.where.add(query.columns.orderdate.isNull)

joins

Get the joins clause of this table based clause. Joins added to this clause will be based on this table clauses table.

Type QBJoins

Sample

foundset.getQuery().joins

parent

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

Type QBTableClause

Sample

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

Sample

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)

Methods Detailed

getColumn(name)

Get a column from the table.

Parameters

  • String name the name of column to get

Returns: QBColumn

Sample

foundset.getQuery().getColumn('orderid')

getColumn(columnTableAlias, name)

Get a column from the table with given alias. The alias may be of the main table or any level deep joined table.

Parameters

  • String columnTableAlias the alias for the table

  • String name the name of column to get

Returns: QBColumn

Sample

foundset.getQuery().getColumn('orderid', 'opk')

getDataSource()

Returns the datasource for this.

Returns: String the dataSource

getTableAlias()

Returns the table alias for this.

Returns: String the tableAlias


Last updated