public function join($query)
    {
        $clause = '';
        $repository = $query->getRepository();
        $resources = $repository->getResources();
        $links = $resources->getLinks();
        foreach ($links as $link) {
            $type = strtoupper($link->resource->getLinkType());
            switch ($type) {
                case 'STRONG' : $type = 'INNER';break;
                case 'WEAK'   : $type = 'LEFT'; break;
            }
            $query->join($type, $link->resource->getName().' AS '.$this->_store->quoteName($link->resource->getAlias()), array(
                $link->child.'='.$link->parent,
            ));
        }

        $this->_links($query, $query->link);

        if (!empty($query->join)) {
            $joins = array();
            foreach ($query->join as $join) {
                $tmp = '';

                if (!empty($join['type'])) {
                    $tmp .= $join['type'].' ';
                }

                $tmp .= 'JOIN '.$join['resource'];
                $tmp .= ' ON '.implode(' AND ', $join['condition']);

                $joins[] = $tmp;
            }

            $clause = implode(' ', $joins);
        }

        return $clause;
    }
public function join($query)
    {
        $clause = '';
        $repository = $query->getRepository();
        $resources = $repository->getResources();
        $links = $resources->getLinks();
        foreach ($links as $link) {
            $type = strtoupper($link->resource->getLinkType());
            switch ($type) {
                case 'STRONG' : $type = 'INNER';break;
                case 'WEAK'   : $type = 'LEFT'; break;
            }
            $query->join($type, $link->resource->getName().' AS '.$this->_store->quoteName($link->resource->getAlias()), array(
                $link->child.'='.$link->parent,
            ));
        }

        $this->_links($query, $query->link);

        if (!empty($query->join)) {
            $joins = array();
            foreach ($query->join as $join) {
                $tmp = '';

                if (!empty($join['type'])) {
                    $tmp .= $join['type'].' ';
                }

                $tmp .= 'JOIN '.$join['resource'];
                $tmp .= ' ON '.implode(' AND ', $join['condition']);

                $joins[] = $tmp;
            }

            $clause = implode(' ', $joins);
        }

        return $clause;
    }
public function join ( $ query ) { $ clause = '' ; $ repository = $ query -> getRepository ( ) ; $ resources = $ repository -> getResources ( ) ; $ links = $ resources -> getLinks ( ) ; foreach ( $ links as $ link ) { $ type = strtoupper ( $ link -> resource -> getLinkType ( ) ) ; switch ( $ type ) { case 'STRONG' : $ type = 'INNER' ; break ; case 'WEAK' : $ type = 'LEFT' ; break ; } $ query -> join ( $ type , $ link -> resource -> getName ( ) . ' AS ' . $ this -> _store -> quoteName ( $ link -> resource -> getAlias ( ) ) , array ( $ link -> child . '=' . $ link -> parent , ) ) ; } $ this -> _links ( $ query , $ query -> link ) ; if ( ! empty ( $ query -> join ) ) { $ joins = array ( ) ; foreach ( $ query -> join as $ join ) { $ tmp = '' ; if ( ! empty ( $ join [ 'type' ] ) ) { $ tmp .= $ join [ 'type' ] . ' ' ; } $ tmp .= 'JOIN ' . $ join [ 'resource' ] ; $ tmp .= ' ON ' . implode ( ' AND ' , $ join [ 'condition' ] ) ; $ joins [ ] = $ tmp ; } $ clause = implode ( ' ' , $ joins ) ; } return $ clause ; }
Return the join clause.

@return string
Return the join clause .