/** * @param $relationSelector - Relation object, relation name or nested relations 'rel1->rel2' * @param null $aliases - alias of the first joined table or array of aliases for nested joins * @return ModelQueryBuilder */ public function using($relationSelector, $aliases) { $modelJoins = $this->createModelJoins($relationSelector, $aliases, 'USING', array()); foreach ($modelJoins as $modelJoin) { $this->_query->addUsing($modelJoin->asJoinClause()); } return $this; }
/** * @test */ public function shouldReturnDeleteFromWithJoin() { // given $query = new Query(); $query->type = QueryType::$DELETE; $query->table = 'products'; $query->addUsing(new JoinClause('categories', 'id_category', 'id', 'products', 'c', 'USING', array())); // when $sql = $this->_dialect->buildQuery($query); // then $this->assertEquals('DELETE FROM products USING products INNER JOIN categories AS c WHERE (c.id_category = products.id)', $sql); }