public function testSubQueryParameters() { $subCriteria = new BookQuery(); $subCriteria->filterByAuthorId(123); $c = new BookQuery(); $c->addSelectQuery($subCriteria, 'subCriteriaAlias'); // and use filterByPrice method! $c->filterByPrice(20, Criteria::LESS_THAN); $sql = "SELECT subCriteriaAlias.ID, subCriteriaAlias.TITLE, subCriteriaAlias.ISBN, subCriteriaAlias.PRICE, subCriteriaAlias.PUBLISHER_ID, subCriteriaAlias.AUTHOR_ID FROM (SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID FROM `book` WHERE book.AUTHOR_ID=:p2) AS subCriteriaAlias WHERE subCriteriaAlias.PRICE<:p1"; $params = array(array('table' => 'book', 'column' => 'PRICE', 'value' => 20), array('table' => 'book', 'column' => 'AUTHOR_ID', 'value' => 123)); $this->assertCriteriaTranslation($c, $sql, $params, 'addSubQueryCriteriaInFrom() combines two queries succesfully'); }
public function testSubQueryParameters() { $subCriteria = new BookQuery(); $subCriteria->filterByAuthorId(123); $c = new BookQuery(); $c->addSelectQuery($subCriteria, 'subCriteriaAlias'); // and use filterByPrice method! $c->filterByPrice(20, Criteria::LESS_THAN); $sql = "SELECT subCriteriaAlias.id, subCriteriaAlias.title, subCriteriaAlias.isbn, subCriteriaAlias.price, subCriteriaAlias.publisher_id, subCriteriaAlias.author_id FROM (SELECT book.id, book.title, book.isbn, book.price, book.publisher_id, book.author_id FROM `book` WHERE book.author_id=:p2) AS subCriteriaAlias WHERE subCriteriaAlias.price<:p1"; $params = array(array('table' => 'book', 'column' => 'price', 'value' => 20), array('table' => 'book', 'column' => 'author_id', 'value' => 123)); $this->assertCriteriaTranslation($c, $sql, $params, 'addSubQueryCriteriaInFrom() combines two queries successfully'); }