|  |  | @ -326,11 +326,11 @@ class ActiveQuery extends Query implements ActiveQueryInterface | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	/** |  |  |  | 	/** | 
			
		
	
		
		
			
				
					
					|  |  |  | 	 * Returns the table alias (or table name) that can be used to prefix column names. |  |  |  | 	 * Returns the table name and the table alias for [[modelClass]]. | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	 * @param ActiveQuery $query |  |  |  | 	 * @param ActiveQuery $query | 
			
		
	
		
		
			
				
					
					|  |  |  | 	 * @return string the table alias (or table name) enclosed within double curly brackets. |  |  |  | 	 * @return array the table name and the table alias. | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	 */ |  |  |  | 	 */ | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private function getQueryTableAlias($query) |  |  |  | 	private function getQueryTableName($query) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	{ |  |  |  | 	{ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if (empty($query->from)) { |  |  |  | 		if (empty($query->from)) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			/** @var ActiveRecord $modelClass */ |  |  |  | 			/** @var ActiveRecord $modelClass */ | 
			
		
	
	
		
		
			
				
					|  |  | @ -341,12 +341,12 @@ class ActiveQuery extends Query implements ActiveQueryInterface | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if (preg_match('/^(.*?)\s+({{\w+}}|\w+)$/', $tableName, $matches)) { |  |  |  | 		if (preg_match('/^(.*?)\s+({{\w+}}|\w+)$/', $tableName, $matches)) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			$tableName = $matches[2]; |  |  |  | 			$alias = $matches[2]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		if (strpos($tableName, '{{') === false) { |  |  |  | 			$alias = $tableName; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			$tableName = '{{' . $tableName . '}}'; |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		return $tableName; |  |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		return [$tableName, $alias]; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	/** |  |  |  | 	/** | 
			
		
	
	
		
		
			
				
					|  |  | @ -372,13 +372,21 @@ class ActiveQuery extends Query implements ActiveQueryInterface | 
			
		
	
		
		
			
				
					
					|  |  |  | 			return; |  |  |  | 			return; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		$parentTable = $this->getQueryTableAlias($parent); |  |  |  | 		list ($parentTable, $parentAlias) = $this->getQueryTableName($parent); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		$childTable = $this->getQueryTableAlias($child); |  |  |  | 		list ($childTable, $childAlias) = $this->getQueryTableName($child); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if (!empty($child->link)) { |  |  |  | 		if (!empty($child->link)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			if (strpos($parentAlias, '{{') === false) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				$parentAlias = '{{' . $parentAlias . '}}'; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			if (strpos($childAlias, '{{') === false) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				$childAlias = '{{' . $childAlias . '}}'; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 			$on = []; |  |  |  | 			$on = []; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			foreach ($child->link as $childColumn => $parentColumn) { |  |  |  | 			foreach ($child->link as $childColumn => $parentColumn) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				$on[] = "$parentTable.[[$parentColumn]] = $childTable.[[$childColumn]]"; |  |  |  | 				$on[] = "$parentAlias.[[$parentColumn]] = $childAlias.[[$childColumn]]"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			$on = implode(' AND ', $on); |  |  |  | 			$on = implode(' AND ', $on); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} else { |  |  |  | 		} else { | 
			
		
	
	
		
		
			
				
					|  |  | 
 |