$this->assertEquals('US', $contacts[0]['address.country.iso_code']);
}
+ public function testExcludeJoin() {
+ $contacts = Contact::get(FALSE)
+ ->addJoin('Address AS address', 'EXCLUDE', ['id', '=', 'address.contact_id'], ['address.location_type_id', '=', 1])
+ ->addSelect('id')
+ ->execute()->column('id');
+ $this->assertNotContains($this->getReference('test_contact_1')['id'], $contacts);
+ }
+
public function testJoinToTheSameTableTwice() {
$cid1 = Contact::create(FALSE)
->addValue('first_name', 'Aaa')
$contacts = Contact::get(FALSE)
->addSelect('id', 'first_name', 'any_email.email', 'any_email.location_type_id:name', 'any_email.is_primary', 'primary_email.email')
->setJoin([
- ['Email AS any_email', TRUE, NULL],
- ['Email AS primary_email', FALSE, ['primary_email.is_primary', '=', TRUE]],
+ ['Email AS any_email', 'INNER', NULL],
+ ['Email AS primary_email', 'LEFT', ['primary_email.is_primary', '=', TRUE]],
])
->addWhere('id', 'IN', [$cid1, $cid2, $cid3])
->addOrderBy('any_email.id')