final public function intersectWith(Collection $collection, $sourceColumnName, $targetColumnName, $columnsToPullUp = [], $autoHydrate = false)
    {
        $collection->isIntersection = true;
        $collectionJoin = new CollectionJoin($collection, $sourceColumnName, $targetColumnName, $columnsToPullUp, $autoHydrate, CollectionJoin::JOIN_TYPE_INTERSECTION);
        $this->intersections[] = $collectionJoin;
        return $this->prepareCollectionJoin($collectionJoin);
    }