Quaisquer pedidos de adesão
O elemento de solicitação de junção JOIN pode ser usado para especificar que o otimizador é escolher um método apropriado para junção de duas tabelas em uma ordem específica.
Qualquer tabela pode ser local ou derivada, conforme especificado por um sub-elemento de solicitação de acesso, ou pode ser o resultado de uma operação de junção, conforme especificado por um sub-elemento de solicitação de junção. Uma tabela derivada é o resultado de outro subselect. Esse elemento de solicitação de união é definido pelo tipo complexo anyJoinType.
XML Schema
<xs:complexType name="anyJoinType">
<xs:complexContent>
<xs:extension base="joinType"/>
</xs:complexContent>
</xs:complexType>
Descrição
O tipo complexo anyJoinType é uma extensão simples do tipo abstrato joinType. Nenhum novo elemento ou atributos são adicionados.
O exemplo a seguir ilustra o uso do elemento de solicitação de junção JOIN para forçar uma ordem de junção particular para um conjunto de tabelas:
SQL statement:
select s.s_name, s.s_address, s.s_phone, s.s_comment
from "Samp".parts, "Samp".suppliers s, "Samp".partsupp ps
where p_partkey = ps.ps_partkey and
s.s_suppkey = ps.ps_suppkey and
p_size = 39 and
p_type = 'BRASS' and
s.s_nation in ('MOROCCO', 'SPAIN') and
ps.ps_supplycost = (select min(ps1.ps_supplycost)
from "Samp".partsupp ps1, "Samp".suppliers s1
where "Samp".parts.p_partkey = ps1.ps_partkey and
s1.s_suppkey = ps1.ps_suppkey and
s1.s_nation = s.s_nation)
order by s.s_name
Optimization guideline:
<OPTGUIDELINES>
<JOIN>
<JOIN>
<ACCESS TABLE='"Samp".PARTS'/>
<ACCESS TABLE='S'/>
</JOIN>
<ACCESS TABLE='PS'>
</JOIN>
</OPTGUIDELINES>Os elementos de solicitação de junção JOIN especificam que a tabela PARTS na subselect principal deve ser unida com a tabela FORNECEDORES, e que este resultado deve ser unido à tabela PARTSUPP. O otimizador escolherá os métodos de junção para esta sequência particular de joias de forma baseada em custos.