|
@@ 640-653 (lines=14) @@
|
| 637 |
|
/** |
| 638 |
|
* @group DBAL-172 |
| 639 |
|
*/ |
| 640 |
|
public function testReferenceJoinFromJoin() |
| 641 |
|
{ |
| 642 |
|
$qb = new QueryBuilder($this->conn); |
| 643 |
|
|
| 644 |
|
$qb->select('COUNT(DISTINCT news.id)') |
| 645 |
|
->from('cb_newspages', 'news') |
| 646 |
|
->innerJoin('news', 'nodeversion', 'nv', 'nv.refId = news.id AND nv.refEntityname=\'News\'') |
| 647 |
|
->innerJoin('invalid', 'nodetranslation', 'nt', 'nv.nodetranslation = nt.id') |
| 648 |
|
->innerJoin('nt', 'node', 'n', 'nt.node = n.id') |
| 649 |
|
->where('nt.lang = :lang AND n.deleted != 1'); |
| 650 |
|
|
| 651 |
|
$this->expectException('Doctrine\DBAL\Query\QueryException', "The given alias 'invalid' is not part of any FROM or JOIN clause table. The currently registered aliases are: news, nv."); |
| 652 |
|
self::assertEquals('', $qb->getSQL()); |
| 653 |
|
} |
| 654 |
|
|
| 655 |
|
/** |
| 656 |
|
* @group DBAL-172 |
|
@@ 658-671 (lines=14) @@
|
| 655 |
|
/** |
| 656 |
|
* @group DBAL-172 |
| 657 |
|
*/ |
| 658 |
|
public function testSelectFromMasterWithWhereOnJoinedTables() |
| 659 |
|
{ |
| 660 |
|
$qb = new QueryBuilder($this->conn); |
| 661 |
|
|
| 662 |
|
$qb->select('COUNT(DISTINCT news.id)') |
| 663 |
|
->from('newspages', 'news') |
| 664 |
|
->innerJoin('news', 'nodeversion', 'nv', "nv.refId = news.id AND nv.refEntityname='Entity\\News'") |
| 665 |
|
->innerJoin('nv', 'nodetranslation', 'nt', 'nv.nodetranslation = nt.id') |
| 666 |
|
->innerJoin('nt', 'node', 'n', 'nt.node = n.id') |
| 667 |
|
->where('nt.lang = ?') |
| 668 |
|
->andWhere('n.deleted = 0'); |
| 669 |
|
|
| 670 |
|
self::assertEquals("SELECT COUNT(DISTINCT news.id) FROM newspages news INNER JOIN nodeversion nv ON nv.refId = news.id AND nv.refEntityname='Entity\\News' INNER JOIN nodetranslation nt ON nv.nodetranslation = nt.id INNER JOIN node n ON nt.node = n.id WHERE (nt.lang = ?) AND (n.deleted = 0)", $qb->getSQL()); |
| 671 |
|
} |
| 672 |
|
|
| 673 |
|
/** |
| 674 |
|
* @group DBAL-442 |