QBJoins

Overview

The QBJoins class is a utility object designed to manage and configure all join operations in the QBSelect query builder framework. It provides mechanisms to dynamically add, modify, and remove joins based on data sources, relations, or subqueries. This flexibility allows developers to construct queries that incorporate complex table relationships.

The class supports multiple join types, including INNER JOIN and LEFT OUTER JOIN, and offers tools to manage unused joins, ensuring optimized query execution. It also integrates with parent and root query references, allowing for scalable and modular query design.

For additional guidance on query construction and execution, see the QBSelect documentation.

Properties Summarized

Type
Name
Summary

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

Get query builder parent.

Methods Summarized

Type
Name
Summary

Add a join clause from the parent query builder part to a derived table based on another query.

Add a join clause from the parent query builder part to a derived table based on another query.

Add a join with join type QBJoin.

Add a join with no alias for the joining table.

Add a join clause from the parent query builder part to the specified data source.

Add a join based on relation or add a manual join.

Remove the joins that are not used anywhere in the query.

Properties Detailed

parent

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

Type QBTableClause the parent table clause for these joins.

Sample

root

Get query builder parent.

Type QBSelect the root query builder for these joins.

Sample

Methods Detailed

add(subqueryBuilder, joinType)

Add a join clause from the parent query builder part to a derived table based on another query.

Parameters

Returns: QBJoin a QBJoin object representing the join added for the specified subquery.

Sample

add(subqueryBuilder, joinType, alias)

Add a join clause from the parent query builder part to a derived table based on another query.

Parameters

Returns: QBJoin a QBJoin object representing the join added for the specified subquery with the given alias.

Sample

add(dataSource)

Add a join with join type QBJoin.LEFT_OUTER_JOIN and no alias for the joining table.

Parameters

Returns: QBJoin a QBJoin object representing the newly added join with a default join type.

Sample

add(dataSource, joinType)

Add a join with no alias for the joining table.

Parameters

  • String dataSource data source

  • Number joinType join type, one of QBJoin.LEFT_OUTER_JOIN, QBJoin.INNER_JOIN, QBJoin.RIGHT_OUTER_JOIN, QBJoin.FULL_JOIN

Returns: QBJoin a QBJoin object representing the newly added join.

Sample

add(dataSource, joinType, alias)

Add a join clause from the parent query builder part to the specified data source.

Parameters

  • String dataSource data source

  • Number joinType join type, one of QBJoin.LEFT_OUTER_JOIN, QBJoin.INNER_JOIN, QBJoin.RIGHT_OUTER_JOIN, QBJoin.FULL_JOIN

  • String alias the alias for joining table

Returns: QBJoin a QBJoin object representing the newly added join with the specified type and alias.

Sample

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 QBJoin.LEFT_OUTER_JOIN.

Parameters

  • String dataSourceOrRelation data source

  • String alias the alias for joining table

Returns: QBJoin a QBJoin object representing the newly added join using the given alias.

Sample

getJoins()

Returns: Array an array of QBJoin objects representing all joins in this query.

removeUnused(keepInnerjoins)

Remove the joins that are not used anywhere in the query.

Parameters

  • Boolean keepInnerjoins when true inner joins are not removed, inner joins may impact the query result, even when not used

Returns: QBJoins this QBJoins instance after removing unused joins.

Sample


Last updated

Was this helpful?