|  |  |  | @ -326,19 +326,27 @@ class ActiveQuery extends Query implements ActiveQueryInterface | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  |  | 	 * Returns the table name used by the specified active query. | 
			
		
	
		
			
				
					|  |  |  |  | 	 * Returns the table alias (or table name) that can be used to prefix column names. | 
			
		
	
		
			
				
					|  |  |  |  | 	 * @param ActiveQuery $query | 
			
		
	
		
			
				
					|  |  |  |  | 	 * @return string the table name | 
			
		
	
		
			
				
					|  |  |  |  | 	 * @return string the table alias (or table name) enclosed within double curly brackets. | 
			
		
	
		
			
				
					|  |  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  |  | 	private function getQueryTableName($query) | 
			
		
	
		
			
				
					|  |  |  |  | 	private function getQueryTableAlias($query) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if (empty($query->from)) { | 
			
		
	
		
			
				
					|  |  |  |  | 			/** @var ActiveRecord $modelClass */ | 
			
		
	
		
			
				
					|  |  |  |  | 			$modelClass = $query->modelClass; | 
			
		
	
		
			
				
					|  |  |  |  | 			return $modelClass::tableName(); | 
			
		
	
		
			
				
					|  |  |  |  | 			$tableName = $modelClass::tableName(); | 
			
		
	
		
			
				
					|  |  |  |  | 		} else { | 
			
		
	
		
			
				
					|  |  |  |  | 			return reset($query->from); | 
			
		
	
		
			
				
					|  |  |  |  | 			$tableName = reset($query->from); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if (preg_match('/^(.*?)\s+({{\w+}}|\w+)$/', $tableName, $matches)) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$tableName = $matches[2]; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		if (strpos($tableName, '{{') === false) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$tableName = '{{' . $tableName . '}}'; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return $tableName; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** | 
			
		
	
	
		
			
				
					|  |  |  | @ -364,15 +372,8 @@ class ActiveQuery extends Query implements ActiveQueryInterface | 
			
		
	
		
			
				
					|  |  |  |  | 			return; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		$parentTable = $this->getQueryTableName($parent); | 
			
		
	
		
			
				
					|  |  |  |  | 		$childTable = $this->getQueryTableName($child); | 
			
		
	
		
			
				
					|  |  |  |  | 		if (strpos($parentTable, '{{') === false) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$parentTable = '{{' . $parentTable . '}}'; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		if (strpos($childTable, '{{') === false) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$childTable = '{{' . $childTable . '}}'; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		$parentTable = $this->getQueryTableAlias($parent); | 
			
		
	
		
			
				
					|  |  |  |  | 		$childTable = $this->getQueryTableAlias($child); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if (!empty($child->link)) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$on = []; | 
			
		
	
	
		
			
				
					|  |  |  | 
 |