/**
  * Merge with lookup table
  *
  * @param QueryBuilder $QB
  * @param string $tablealias
  * @param string $colname
  * @param string $alias
  */
 public function select(QueryBuilder $QB, $tablealias, $colname, $alias)
 {
     if (!$this->usesLookup()) {
         parent::select($QB, $tablealias, $colname, $alias);
         return;
     }
     $schema = 'data_' . $this->schema->getTable();
     $field = $this->column->getColName();
     $rightalias = $QB->generateTableAlias();
     $QB->addLeftJoin($tablealias, $schema, $rightalias, "{$tablealias}.{$colname} = {$rightalias}.pid");
     $this->column->getType()->select($QB, $rightalias, $field, $alias);
     $sql = $QB->getSelectStatement($alias);
     $QB->addSelectStatement("STRUCT_JSON({$tablealias}.{$colname}, {$sql})", $alias);
 }