public function testJoinSubtable() { $stub = (object) array('db_type' => 'mysql'); $subquery = new \PHPixie\DB\PDO\Query($stub, 'select'); $subquery->table('fairies'); $this->object->table($subquery); $this->object->join('pixies', array('fairies.id', '=', 'pixie.id')); $this->object->join(array('fairies', 'fae'), array('fairies.id', '=', 'fae.id')); $this->object->join(array($subquery, 'fae2'), array('fairies.id', '=', 'fae2.id')); $this->assertEquals('SELECT * FROM (SELECT * FROM `fairies` ) AS a0 LEFT JOIN `pixies` ON `fairies`.`id` = `pixie`.`id` LEFT JOIN `fairies` AS fae ON `fairies`.`id` = `fae`.`id` LEFT JOIN (SELECT * FROM `fairies` ) AS fae2 ON `fairies`.`id` = `fae2`.`id` ', current($this->object->query())); }