public function testMergeSelect() { $this->queryBuilder->select('id'); $this->queryBuilder->select('count(*)', 'nb'); $qb = new SelectQueryBuilder(); $qb->select('title'); $qb->addOption('DISTINCT'); $this->queryBuilder->mergeSelect($qb); $expected = array('count(*)' => 'nb', 'id' => null, 'title' => null); $this->assertEquals($expected, $this->queryBuilder->getSelectParts()); $this->assertEquals(array('DISTINCT'), $this->queryBuilder->getOptions()); }
/** * Merges the given QueryBuilder's SELECT into this QueryBuilder. * * @param \SQL\SelectQueryBuilder $QueryBuilder to merge * * @return \SQL\SelectQueryBuilder the current QueryBuilder */ public function mergeSelect(SelectQueryBuilder $QueryBuilder) { foreach ($QueryBuilder->getOptions() as $currentOption) { $this->addOption($currentOption); } foreach ($QueryBuilder->getSelectParts() as $currentColumn => $currentAlias) { $this->select($currentColumn, $currentAlias); } return $this; }