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)
var subquery =datasources.db.example_data.products.createSelect();subquery.where.add(subquery.columns.supplierid.eq(99));subquery.result.add(subquery.columns.categoryid,'subcat')subquery.result.add(subquery.columns.productid,'subprod')var query =datasources.db.example_data.order_details.createSelect();// add a join on a derived table using a subqueryvar join =query.joins.add(subquery,QBJoin.INNER_JOIN,'subprods');join.on.add(query.columns.productid.eq(join.columns['subprod']));query.result.add(query.columns.quantity);query.result.add(join.columns['subcat']);
add(dataSource)
Add a join with join type IQueryBuilderJoin#LEFT_OUTER_JOIN and no alias for the joining table.
var query =datasources.db.example_data.orders.createSelect();/** @type{QBJoin<db:/example_data/order_details>} */var join =query.joins.add('db:/example_data/order_details',QBJoin.INNER_JOIN,'odetail')join.on.add(join.columns.orderid.eq(query.columns.orderid))// to add a join based on a relation, use the relation namevar join2 =query.joins.add('orders_to_customers','cust')query.where.add(join2.columns.customerid.eq(999))foundset.loadRecords(query)
add(dataSource, joinType)
Add a join with no alias for the joining table.
ParametersString dataSource data source
Number joinType join type, one of QBJoin.LEFT_OUTER_JOIN, QBJoin.INNER_JOIN, QBJoin.RIGHT_OUTER_JOIN, QBJoin.FULL_JOIN
var query =datasources.db.example_data.orders.createSelect();/** @type{QBJoin<db:/example_data/order_details>} */var join =query.joins.add('db:/example_data/order_details',QBJoin.INNER_JOIN,'odetail')join.on.add(join.columns.orderid.eq(query.columns.orderid))// to add a join based on a relation, use the relation namevar join2 =query.joins.add('orders_to_customers','cust')query.where.add(join2.columns.customerid.eq(999))foundset.loadRecords(query)
add(dataSource, joinType, alias)
Add a join clause from the parent query builder part to the specified data source.
ParametersString dataSource data source
Number joinType join type, one of IQueryBuilderJoin#LEFT_OUTER_JOIN, IQueryBuilderJoin#INNER_JOIN, IQueryBuilderJoin#RIGHT_OUTER_JOIN, IQueryBuilderJoin#FULL_JOIN
String alias the alias for joining table
var query =datasources.db.example_data.orders.createSelect();/** @type{QBJoin<db:/example_data/order_details>} */var join =query.joins.add('db:/example_data/order_details',QBJoin.INNER_JOIN,'odetail')join.on.add(join.columns.orderid.eq(query.columns.orderid))// to add a join based on a relation, use the relation namevar join2 =query.joins.add('orders_to_customers','cust')query.where.add(join2.columns.customerid.eq(999))foundset.loadRecords(query)
add(dataSourceOrRelation, alias)
Add a join based on relation or add a manual join. When dataSourceOrRelation is a relation name, a join will be added based on the relation. When dataSourceOrRelation is a data source, an empty join will be added with join type IQueryBuilderJoin#LEFT_OUTER_JOIN.
ParametersString dataSourceOrRelation data source
String alias the alias for joining table
var query =datasources.db.example_data.orders.createSelect();/** @type{QBJoin<db:/example_data/order_details>} */var join =query.joins.add('db:/example_data/order_details',QBJoin.INNER_JOIN,'odetail')join.on.add(join.columns.orderid.eq(query.columns.orderid))// to add a join based on a relation, use the relation namevar join2 =query.joins.add('orders_to_customers','cust')query.where.add(join2.columns.customerid.eq(999))foundset.loadRecords(query)
var query =datasources.db.example_data.orders.createSelect()// a joins is added from the relationquery.sort.add(query.joins.orders_to_detail.columns.price.sum.asc)// clearing the sort does not remove the joinsquery.sort.clear()// remove the unused joinsquery.joins.removeUnused(false)