src/Query/Node/Association.php
public function join(
        Builder $objBuilder,
        $blnExpandSelection = false,
        iCondition $objJoinCondition = null,
        Clause\Select $objSelect = null
    ) {
        $objParentNode = $this->objParentNode;
        $objParentNode->join($objBuilder, $blnExpandSelection, null, $objSelect);
        if ($objJoinCondition && !$objJoinCondition->equalTables($this->fullAlias())) {
            throw new Caller("The join condition on the \"" . $this->strTableName . "\" table must only contain conditions for that table.");
        }

        try {
            $strParentAlias = $objParentNode->fullAlias();
            $strAlias = $this->fullAlias();
            //$strJoinTableAlias = $strParentAlias . '__' . ($this->strAlias ? $this->strAlias : $this->strName);
            $objBuilder->addJoinItem($this->strTableName, $strAlias,
                $strParentAlias, $objParentNode->_PrimaryKey, $this->strPrimaryKey, $objJoinCondition);

            if ($blnExpandSelection) {
                $this->putSelectFields($objBuilder, $strAlias, $objSelect);
            }
        } catch (Caller $objExc) {
            $objExc->incrementOffset();
            throw $objExc;
        }
    }
public function join(
        Builder $objBuilder,
        $blnExpandSelection = false,
        iCondition $objJoinCondition = null,
        Clause\Select $objSelect = null
    ) {
        $objParentNode = $this->objParentNode;
        $objParentNode->join($objBuilder, $blnExpandSelection, null, $objSelect);
        if ($objJoinCondition && !$objJoinCondition->equalTables($this->fullAlias())) {
            throw new Caller("The join condition on the \"" . $this->strTableName . "\" table must only contain conditions for that table.");
        }

        try {
            $strParentAlias = $objParentNode->fullAlias();
            $strAlias = $this->fullAlias();
            //$strJoinTableAlias = $strParentAlias . '__' . ($this->strAlias ? $this->strAlias : $this->strName);
            $objBuilder->addJoinItem($this->strTableName, $strAlias,
                $strParentAlias, $objParentNode->_PrimaryKey, $this->strPrimaryKey, $objJoinCondition);

            if ($blnExpandSelection) {
                $this->putSelectFields($objBuilder, $strAlias, $objSelect);
            }
        } catch (Caller $objExc) {
            $objExc->incrementOffset();
            throw $objExc;
        }
    }
public function join ( Builder $ objBuilder , $ blnExpandSelection = false , iCondition $ objJoinCondition = null , Clause \ Select $ objSelect = null ) { $ objParentNode = $ this -> objParentNode ; $ objParentNode -> join ( $ objBuilder , $ blnExpandSelection , null , $ objSelect ) ; if ( $ objJoinCondition && ! $ objJoinCondition -> equalTables ( $ this -> fullAlias ( ) ) ) { throw new Caller ( "The join condition on the \"" . $ this -> strTableName . "\" table must only contain conditions for that table." ) ; } try { $ strParentAlias = $ objParentNode -> fullAlias ( ) ; $ strAlias = $ this -> fullAlias ( ) ; //$strJoinTableAlias = $strParentAlias . '__' . ($this->strAlias ? $this->strAlias : $this->strName); $ objBuilder -> addJoinItem ( $ this -> strTableName , $ strAlias , $ strParentAlias , $ objParentNode -> _PrimaryKey , $ this -> strPrimaryKey , $ objJoinCondition ) ; if ( $ blnExpandSelection ) { $ this -> putSelectFields ( $ objBuilder , $ strAlias , $ objSelect ) ; } } catch ( Caller $ objExc ) { $ objExc -> incrementOffset ( ) ; throw $ objExc ; } }
Join the node to the query. Join condition here gets applied to parent item.

@param Builder $objBuilder
@param bool $blnExpandSelection
@param iCondition|null $objJoinCondition
@param Clause\Select|null $objSelect
@throws Caller
Join the node to the query . Join condition here gets applied to parent item .