class RealJoin extends Object implements Join
virtualTable vt JOIN regularTable rt ON rt.id = vt.leftColumn
.
Note that the join is always done to the 'id' of the items in the regular table.
RealTable
Modifier and Type | Field and Description |
---|---|
private JoinType |
joinType |
private RealTable |
right |
private RealTable |
rLeft |
private String |
rLeftColumn |
private VirtualTable |
vLeft |
private VirtualColumn |
vLeftColumn |
Constructor and Description |
---|
RealJoin(JoinType joinType,
RealTable left,
RealTable right,
String leftColumn)
Create a new join between two regular tables.
|
RealJoin(JoinType joinType,
VirtualTable left,
RealTable right,
VirtualColumn leftColumn)
Create a new join between a virtual and a regular table.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
This join is equal to another RealJoin if they
join between the same tables using the same columns and join types.
|
Collection<? extends QueryElement> |
getChildren()
Get the children of this query element or null if it has no children.
|
private String |
getLeftTableAlias(Query query) |
private String |
getLeftTableColumn() |
String |
getThetaJoin(Query query,
DbControl dc) |
String |
getThetaJoinCondition(Query query,
DbControl dc) |
int |
hashCode() |
String |
toQl(Query query,
DbControl dc)
Create a query language string of the query element.
|
String |
toString() |
private final JoinType joinType
private final RealTable right
private VirtualTable vLeft
private VirtualColumn vLeftColumn
private RealTable rLeft
private String rLeftColumn
RealJoin(JoinType joinType, VirtualTable left, RealTable right, VirtualColumn leftColumn)
SELECT ... FROM left JOIN right ON right.id = left.column
.joinType
- The type of joinleft
- The left table to join from, if not specified we join
from the root tableright
- The table to join toleftColumn
- The column in the left table to join from, we always
join to the id of the real tableRealJoin(JoinType joinType, RealTable left, RealTable right, String leftColumn)
SELECT ... FROM left JOIN right ON right.id = left.column
.joinType
- The type of joinleft
- The left table to join from, if not specified we join
from the root tableright
- The table to join toleftColumn
- The column in the left table to join from, we always
join to the id of the real tablepublic String toQl(Query query, DbControl dc) throws BaseException
QueryElement
Query.getQueryType()
method to find out which query language is wanted
in case the element requires different syntax for different languages.toQl
in interface QueryElement
query
- The query that is about to be executeddc
- The DbControl
object used to execute the queryBaseException
- If there is any other errorpublic Collection<? extends QueryElement> getChildren()
QueryElement
AddExpression
has two children, the expression
beeing added.getChildren
in interface QueryElement
public String getThetaJoin(Query query, DbControl dc) throws BaseException
getThetaJoin
in interface Join
BaseException
public String getThetaJoinCondition(Query query, DbControl dc) throws BaseException
getThetaJoinCondition
in interface Join
BaseException
public boolean equals(Object other)
private String getLeftTableColumn()