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 BancoFROM
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).