Esempio n. 1
0
 /**
  *
  * @return Oops_Sql_Selector
  */
 private function _getSelector()
 {
     if (!isset($this->_selector)) {
         $this->_selector = new Oops_Sql_Selector($this->_table, null, array('target', 'source'));
     } else {
         $this->_selector->resetAll();
     }
     return $this->_selector;
 }
 public function testJoin()
 {
     $this->Oops_Sql_Selector->resetAll();
     $jSelector = new Oops_Sql_Selector('testDatabase.joinTable', 'testField2', array('testFieldX', 'testFieldY'));
     $this->Oops_Sql_Selector->join($jSelector, 'testField2', 'testField2', Oops_Sql_Selector::JOIN_LEFT);
     $this->assertEquals("SELECT COUNT(*) FROM `testDatabase`.`testTable` AS `t1` LEFT JOIN `testDatabase`.`joinTable` AS `t2` ON `t1`.`testField2` = `t2`.`testField2`", $this->Oops_Sql_Selector->count(true));
     $this->Oops_Sql_Selector->resetJoins();
     $this->Oops_Sql_Selector->join($jSelector, 'testField2', 'testField2', Oops_Sql_Selector::JOIN_LEFT, 'joiny');
     $this->assertEquals("SELECT COUNT(*) FROM `testDatabase`.`testTable` AS `t1` LEFT JOIN `testDatabase`.`joinTable` AS `joiny` ON `t1`.`testField2` = `joiny`.`testField2`", $this->Oops_Sql_Selector->count(true));
     $jj = clone $jSelector;
     $jSelector->join($jj, 'testFieldX', 'testFieldY', Oops_Sql_Selector::JOIN_INNER, 'joiny');
     $this->assertEquals("SELECT COUNT(*) FROM `testDatabase`.`testTable` AS `t1` LEFT JOIN (`testDatabase`.`joinTable` AS `joiny`, `testDatabase`.`joinTable` AS `t2`) ON `t1`.`testField2` = `joiny`.`testField2` WHERE `joiny`.`testFieldX` = `t2`.`testFieldY`", $this->Oops_Sql_Selector->count(true));
 }
Esempio n. 3
0
 protected function _setQueryAliases($root = true, $preffered = null)
 {
     static $used = array();
     if ($root) {
         if (!count($this->_joined)) {
             $this->_useAlias = false;
             return;
         }
         self::$_aliasesUsed = array();
         self::$_aliasCounter = 1;
     }
     $this->_useAlias = true;
     if (strlen($preffered) && !in_array($preffered, self::$_aliasesUsed)) {
         self::$_aliasesUsed[] = $this->_alias = $preffered;
     } else {
         $this->_alias = 't' . self::$_aliasCounter++;
     }
     foreach ($this->_joined as $joined) {
         list($selector, $fk, $jk, $jt, $alias) = $joined;
         $selector->_setQueryAliases(false, $alias);
     }
 }