/** * @param string $whereOperator * * @return \NilPortugues\Sql\QueryBuilder\Syntax\Where */ public function where($whereOperator = 'AND') { return $this->select->where($whereOperator); }
/** * @test */ public function itShouldBeAbleToDoWhereNotExists() { $select = new Select('banned_user'); $select->where()->equals('user_id', 1); $this->query->setTable('user')->setColumns(array('user_id', 'role_id'))->where()->notExists($select)->equals('user', 'Nil'); $expected = 'SELECT user.user_id, user.role_id FROM user WHERE (user.user = :v1) AND ' . 'NOT EXISTS (SELECT banned_user.* FROM banned_user WHERE (banned_user.user_id = :v2))'; $this->assertSame($expected, $this->writer->write($this->query)); $expected = array(':v1' => 'Nil', ':v2' => 1); $this->assertEquals($expected, $this->writer->getValues()); }
/** * @test */ public function itShouldSetNotExistsCondition() { $select1 = new Select('user'); $select1->where()->equals('user_id', 10); $result = $this->where->notExists($select1)->getNotExists(); $this->assertEquals(array($select1), $result); }
/** * @test */ public function itShouldAllowSelectQueryToActAsAColumn() { $table1 = new Select('Table1'); $table1->where()->equals('table1_id', 1); $table2 = new Select('Table2'); $table2->where()->eq($table1, 2); $expected = 'SELECT Table2.* FROM Table2 WHERE ((SELECT Table1.* FROM Table1 ' . 'WHERE (Table1.table1_id = :v1)) = :v2)'; $this->assertSame($expected, $this->writer->write($table2)); $expected = array(':v1' => 1, ':v2' => 2); $this->assertEquals($expected, $this->writer->getValues()); }