Especificaciones de unión

Cuando se definen múltiples fuentes en la lista de fuentes, para cada registro en la primera tabla de origen se realiza una selección de la segunda tabla de origen, etc. Por lo tanto, el resultado de la consulta contendrá todas las posibles combinaciones de todos los registros de todas las fuentes especificadas.

Ejemplo:

SELECT
Contractors.Link AS Contratista,
Banks.Link AS Banco

FROM
Catalog.Contractors AS Contractors,
Catalog.Banks AS Banks

Resultado de la consulta:

Contratista

Banco

Vendedores

AKB InvestBank

Vendedores

AKB PromStroyBank

Fábrica de tejidos Zarya

AKB InvestBank

Fábrica de tejidos Zarya

AKB PromStroyBank

Fábrica de jeans

AKB InvestBank

Fábrica de jeans

AKB PromStroyBank

Compradores

AKB InvestBank

Compradores

AKB PromStroyBank

Feria de ropa

AKB InvestBank

Feria de ropa

AKB PromStroyBank

Casa de comercio Budenovsky

AKB InvestBank

Casa de comercio Budenovsky

AKB PromStroyBank

45º puesto en el mercado mayorista

AKB InvestBank

45º puesto en el mercado mayorista

AKB PromStroyBank

Bavaria – Loza

AKB InvestBank

Bavaria – Loza

AKB PromStroyBank

Fábrica de jeans

AKB InvestBank

Fábrica de jeans

AKB PromStroyBank

AKB PromStroyBank

AKB InvestBank

AKB PromStroyBank

AKB PromStroyBank

El resultado de la consulta incluye combinaciones de todos los contratistas con todos los bancos. Normalmente, este resultado no tiene sentido tal cual. Por lo general, las combinaciones de registros de varias tablas de origen deben estar limitadas por ciertas condiciones. El lenguaje de consulta le permite describir dicha unión de fuentes especificando las fuentes y las condiciones que deben cumplirse para incluir una combinación de registros en el resultado de la consulta.

Las uniones pueden pertenecer a varios tipos y se describen mediante las siguientes reglas:

<Lista de uniones>
|
<Unión> [<Lista de uniones>]
|
[INNER] JOIN <Descripción de la fuente>
POR <Condición de filtro> |
LEFT [EXTERNAL] JOIN <Descripción de la fuente>
POR <Condición de filtro> |
RIGHT [EXTERNAL] JOIN <Descripción de la fuente>
POR <Condición de filtro> |
FULL [EXTERNAL] JOIN <Descripción de la fuente>
POR <Condición de filtro>

En general, <Lista de uniones> puede incluir y describir no solo una sola unión (de dos fuentes) sino también múltiples uniones de varias fuentes.

<Descripción de la fuente> incluye la descripción de una tabla de origen.

<Condición de filtro> contiene las condiciones que deben cumplirse para unir los datos de las tablas de origen de la consulta en la selección resultante.

Las palabras clave LEFT, RIGHT y FULL especifican la naturaleza de una unión. La palabra clave INNER o EXTERNAL puede omitirse, pero mejora la legibilidad del texto de la consulta.

Las fuentes unidas no son iguales y en algunos casos los resultados dependen de qué tabla se especifica como la primera antes de la palabra clave JOIN (a la izquierda de la palabra clave) y cuál va en segundo lugar (a la derecha).