Unión cruzada SQL
Una combinación cruzada de lenguaje de consulta estructurado (SQL) devuelve todas las filas de la primera tabla TIMES todas las filas de la segunda tabla. Sí, no es una suma, sino una multiplicación lo que se está realizando. Este tipo de combinación es realmente un producto cartesiano de los conjuntos de datos entre las dos tablas.
Entonces, ¿qué es un producto cartesiano?
Producto cartesiano
Antes de analizar la unión cruzada en detalle, debemos comprender el concepto de producto cartesiano. Verá uniones cruzadas referidas de esta manera, así que analicemos esto.
Básicamente, un producto cartesiano de A y B es A por B, donde se devuelven todos los pares de valores coincidentes entre A y B. En otras palabras, digamos que tenemos los siguientes valores para A y B:
A = (4, 5, 6)
Plan de lecciones de las cruzadas y el mundo musulmán
B = (7, 8)
Cuando calculamos el producto cartesiano, obtenemos: {(4, 7), (4, 8), (5, 7), (5, 8), (6, 7), (6, 8)}.
En formato gráfico, se ve así:
![]() |
¿Qué fue la Guerra de las Cruzadas? Efecto e importancia
Entonces esas son las matemáticas. ¿Cómo se ve esto en SQL? Esta figura muestra un alto nivel de cómo se completa una unión cruzada entre dos tablas:
![]() |
Sintaxis y ejemplos
Hay dos sentencias SQL válidas para crear una combinación cruzada. El primer ejemplo establece explícitamente que tiene la intención de que la base de datos realice el producto cartesiano:
La lección de las cruzadas para niños: hechos, historia e impacto
SELECCIONAR * DEL Cliente
CRUZAR UNIR ÓRDENES
El segundo ejemplo también es válido, pero a primera vista, no es obvio lo que se pretende. Todavía funciona, pero si realmente tiene la intención de hacer una combinación cruzada, debe indicarse explícitamente en el SQL:
SELECCIONAR * DE
Cliente, Pedidos;
Dado que la operación clave aquí es la combinación CROSS JOIN / producto cartesiano, es importante incluir las palabras clave en la consulta. Puede que a la base de datos no le importe, pero al administrador u otros usuarios de sus sentencias SQL puede que le importe mucho. El uso de CROSS JOIN en la declaración SQL muestra claramente lo que pretende.
Datos de la tabla
Echemos un vistazo a cómo se vería la combinación con algunos datos reales. Está bien mostrar las matemáticas y explicar que la declaración realmente devuelve todas las filas de las tablas: la palabra clave es producto o multiplicación.
| Nombre del cliente | Correo electrónico del cliente |
|---|---|
| John Doe | doe.john@mail.com |
| fulano de tal | doe.jane@mail.com |
| Sally Doe | doe.sally@mail.com |
| Solicitar ID | Identificación del artículo |
|---|---|
| 12345 | 738 |
| 98255 | 906 |
| 55556 | 329 |
El resultado de la unión cruzada es:
| Nombre del cliente | Correo electrónico del cliente | Solicitar ID | Identificación del artículo |
|---|---|---|---|
| John Doe | doe.john@mayo.edu | 12345 | 738 |
| fulano de tal | doe.jane@mail.com | 12345 | 738 |
| Sally Doe | doe.sally@mail.com | 12345 | 738 |
| John Doe | doe.john@mayo.edu | 98255 | 906 |
| fulano de tal | doe.jane@mail.com | 98255 | 906 |
| Sally Doe | doe.sally@mail.com | 98255 | 9069 |
| John Doe | doe.john@mayo.edu | 55556 | 329 |
| fulano de tal | doe.jane@mail.com | 55556 | 329 |
| Sally Doe | doe.sally@mail.com | 55556 | 329 |
Ahora tenemos nueve filas de datos del producto cartesiano. A primera vista, podría parecer que esto es bastante inútil: ¡no todos los clientes recibieron todos los pedidos! Sin embargo, existen usos prácticos para la unión cruzada / unión de producto cartesiana.
Usos practicos
La mayoría de los tutoriales de SQL le dirán que evite las combinaciones cruzadas; sin embargo, sin especificar las combinaciones entre las tablas, su resultado será cada combinación de filas de las tablas. Con tablas grandes, la consulta puede salirse de control y bloquear el sistema. Por ejemplo, si tuviera una tabla con 10,000 filas y otra tabla con 40,000 filas, el resultado sería 800,000,000 filas.
Esto puede parecer un error, pero es bueno para descargar datos para su posterior análisis y clasificación. Otra opción es crear una cuadrícula que debe completarse por completo. Por ejemplo, zapato y talla:
SELECCIONE la marca, los tamaños de la marca, los tamaños
CROSS JOIN;
Esto le permite buscar cualquier combinación que pueda faltar o eliminar aquellas combinaciones que sabe que no tiene en stock. El concepto clave aquí es que tendrá que analizar los datos de otras formas, ordenarlos en Excel, por ejemplo, o filtrar ciertos valores. Los administradores de bases de datos no siempre son grandes fanáticos de las combinaciones cruzadas; sin embargo, para pruebas o trabajo analítico, la unión cruzada puede ser útil.
Resumen de la lección
Revisemos. Una combinación cruzada es un producto cartesiano , lo que significa que el resultado es una combinación de todos los registros de cada tabla. La instrucción SQL recomendada incluye CROSS JOIN para que quede claro lo que se devuelve. La palabra clave aquí es ‘producto’, que significa multiplicación: el producto cartesiano, o unión cruzada, multiplica las filas devueltas. La tabla A con cinco filas unidas en cruz a la tabla B con cinco filas devolverá 25 filas. Las uniones cruzadas son útiles para rellenar cuadrículas con todos los datos posibles o volcar datos para su posterior análisis y clasificación.
Explora más sobre este tema
Selecciona un tema y sigue aprendiendo...


