public function assemble(Statement $statement, AbstractTableSection $table, $useTableNameAsAlias) { list($referencedDatasetName, $referencedColumnName) = ReferencePathHelper::splitReference($this->subjectColumnName); $columnByAlias = $table->findColumnByAlias($referencedColumnName); $column = isset($columnByAlias) ? $table->findColumn($referencedColumnName) : NULL; $selectedColumn = isset($columnByAlias) && isset($column) ? $column : $columnByAlias; $tableAlias = $table->prepareColumnTableAlias($useTableNameAsAlias); return (isset($selectedColumn) ? $selectedColumn->assembleColumnName($tableAlias) : ColumnNameHelper::combineColumnName($tableAlias, $referencedColumnName)) . $this->joinValue->assemble($statement, $useTableNameAsAlias); }