public function modifySqlQuery() { //Joining tables by foreign key (one to many relation) if($this->options['select']) { //There is no sense to join anything for overall data list if select fields of foreign table was not set $modifySql = array( 'select' => array(), 'join' => array(), ); foreach($this->options['select'] as $fieldName=>$fieldAlias) { $modifySql['select'][] = "{$this->options['tableAlias']}.{$fieldName} AS {$fieldAlias}"; } $modifySql['join']['table'] = "{$this->options['table']} AS {$this->options['tableAlias']}"; if(!empty($this->options['dbName'])) //Foreign table is in another DB $modifySql['join']['table'] = "{$this->options['dbName']}.{$modifySql['join']['table']}"; $modifySql['join']['type'] = $this->allowNull ? 'left' : 'inner'; $modifySql['join']['conditions'] = array('AND', "{$this->tableName}.{$this->name} = {$this->options['tableAlias']}.{$this->options['pk']}"); if(!empty($this->options['conditions'])) { $conditions = $this->options['conditions']; AADb::addTableAliasToCond($conditions, $this->options['table'], $this->options['tableAlias']); $modifySql['join']['conditions'][] = $conditions; if(!empty($this->options['params'])) $modifySql['join']['params'] = $this->options['params']; } return $modifySql; } return false; }