# Junção de Relações

## WHERE

O Produto Cartesiano tem pouco interesse prático...

No entanto, a associação do operador WHERE permite a junção de relações.

![](https://560658675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO8PI3zA4v3P4FeW3uYOw%2Fuploads%2FYwWh5gst9uaA5Mrxq8dP%2Fa.png?alt=media\&token=18707569-4d32-4c0b-88fe-b4e59d50bd81)

## 3 Relações

### Exemplo

Caso com três relações e duas join conditions:

![](https://560658675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO8PI3zA4v3P4FeW3uYOw%2Fuploads%2FFu9XiVqxaCQiKZo0j245%2Fa.png?alt=media\&token=0a4f2adb-c882-436e-8b70-ec0e1736a10e)

## Ambiguidade de Nomes de Atributos

Quando existem nomes de atributos iguais em distintas relações da junção, podemos utilizar o full qualified name (fqn):

![](https://560658675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO8PI3zA4v3P4FeW3uYOw%2Fuploads%2F6AfkIvAQRU4g0qrmwsH3%2Fa.png?alt=media\&token=16cf8bda-76ab-4ddc-a4fd-c7a5ef4f65d8)

## Ambiguidade + Renomeação

Há situações em que ambiguidade de nomes de atributos resulta de termos uma relação recursiva.

Nesta situação temos de renomeação as relações (alias).

![](https://560658675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO8PI3zA4v3P4FeW3uYOw%2Fuploads%2FvcAdzUDgLOSHqrC09iKL%2Fa.png?alt=media\&token=c693ae50-4e55-49b8-bfb4-bc451b1cc701)

Muitas vezes a renomeação envolvendo várias relações ajuda a melhorar a legibilidade da instrução.
