DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR.

Enter additional information related to this 'class' inside the {div} macro with 'id=description'


Property Summary
QBSelect
parent
Get query builder parent table clause, this may be a query or a join clause.
QBSelect
root
Get query builder parent.

Method Summary
QBGroupBy
add(column)
Add column name to group-by clause.
QBGroupBy
add(function)
Add column name to group-by clause.
QBGroupBy
addPk()
Add the tables' primary pk columns in alphabetical order to the group by clause.
QBGroupBy
clear()
Clear the to group-by clause.

Property Details
parent
Get query builder parent table clause, this may be a query or a join clause.
Returns
QBSelect
Sample
/** @type {QBSelect<db:/example_data/person>} */
	var query = databaseManager.createSelect('db:/example_data/person')
	query.where.add(query.joins.person_to_parent.joins.person_to_parent.columns.name.eq('john'))
	foundset.loadRecords(query)

root
Get query builder parent.
Returns
QBSelect
Sample
/** @type {QBSelect<db:/example_data/order_details>} */
	var subquery = databaseManager.createSelect('db:/example_data/order_details')

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
	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)

Method Details
add
QBGroupBy
add
(column)

Add column name to group-by clause.

Same as query.groupBy().add(join.getColumn("value"))

Parameters
{QBColumn} column - the column to add to the query condition
Returns
QBGroupBy
Sample
/** @type {QBSelect<db:/example_data/orders>} */
var query = databaseManager.createSelect('db:/example_data/orders')
query.groupBy.add(query.columns.orderid) // have to group by on pk when using having-conditions in (foundset) pk queries
.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
foundset.loadRecords(query)

add
QBGroupBy
add
(function)

Add column name to group-by clause.

Same as query.groupBy().add(join.getColumn("value"))

Parameters
{QBFunction} function - the function to add to the query
Returns
QBGroupBy
Sample
/** @type {QBSelect<db:/example_data/orders>} */
var query = databaseManager.createSelect('db:/example_data/orders')
query.groupBy.add(query.columns.orderid) // have to group by on pk when using having-conditions in (foundset) pk queries
.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
foundset.loadRecords(query)

addPk
QBGroupBy
addPk
()
Add the tables' primary pk columns in alphabetical order to the group by clause.
Returns
QBGroupBy
Sample
/** @type {QBSelect<db:/example_data/orders>} */
var query = databaseManager.createSelect('db:/example_data/orders')
query.groupBy.addPk() // have to group by on pk when using having-conditions in (foundset) pk queries
.root.having.add(query.joins.orders_to_order_details.columns.quantity.count.eq(0))
foundset.loadRecords(query)

clear
QBGroupBy
clear
()
Clear the to group-by clause.
Returns
QBGroupBy
Sample
var q = foundset.getQuery()
q.where.add(q.columns.x.eq(100))
query.groupBy.clear.root.clearHaving()
foundset.loadRecords(q);