Cómo crear y usar uniones SQL en Jitterbit App Builder
Al crear objetos de negocio en la capa de lógica de negocio, a menudo es necesario dibujar en dos tablas independientes para mostrar los datos de ambas. Con App Builder, puede configurar un tipo de Join para combinar columnas de una o más tablas u objetos de negocio y crear un nuevo objeto de negocio. Este artículo le guiará por los cuatro tipos de uniones SQL compatibles con App Builder (Inner, Left Outer, Cross y Right Outer) y le ofrecerá ejemplos de cómo crearlas y usarlas. Además, analizaremos otro tipo de relación llamada Union, que se puede configurar en la sección "Uniones" de App Builder.
- Inner - El tipo de unión interna devuelve filas que existen en cada tabla
- Cruz - La unión cruzada produce un producto cartesiano
- Unión externa izquierda: una unión externa izquierda devuelve todas las filas de la tabla izquierda especificada, independientemente de una coincidencia en la tabla derecha
- Exterior derecho - Un exterior derecho devuelve todas las filas de la tabla derecha especificada, independientemente de una coincidencia en la tabla izquierda
- Unión - Combina el conjunto de resultados de dos o más declaraciones SELECT
Unión interna
¿qué es una unión interna?
Las uniones internas son las más utilizadas. Al proporcionar dos tablas, el conjunto de resultados de una unión interna contiene solo las filas entre las dos tablas que son iguales, según las columnas de la unión.
Ejemplo
Supongamos que queremos un objeto de negocio de clientes que han realizado un pedido y los detalles del mismo. Este sería un excelente caso de uso para una unión interna, ya que esta puede devolver registros en la intersección de dos tablas. El conjunto resultante debería incluir todos los datos. CustomerID
que tiene un OrderID
A continuación se muestran las dos tablas. Customer
y Order
A la que nos uniremos.
Antes de crear su unión interna, necesita crear un objeto de negocio. El nuestro se llama Customer (with Order)
Incorpore las dos tablas al panel Tablas. Implemente la unión interna entre ellas. Customer
y Order
La columna Unirse aquí es CustomerID
que es la única columna entre las dos que es igual.
El conjunto de resultados debe incluir a los clientes que han realizado pedidos. En este caso, nuestros datos generaron una sola fila:
Unión cruzada
¿qué es una unión cruzada?
Una Unión Cruzada produce un conjunto de resultados que corresponde al número de filas x de la primera tabla multiplicado por el número de filas y de la segunda tabla. El conjunto de resultados será x * y filas.
Para determinar qué tiene sentido con una Unión Cruzada, conviene decir que el conjunto resultante tendrá columnas de la tabla 1 por cada columna de la tabla 2.
Ejemplo
Tenemos dos mesas, Category
y Supplier
Sabemos que cada Supplier
Me gustaría que cada uno Category
, por lo que necesitamos crear un objeto de negocio que combine estas dos tablas. Queremos un conjunto resultante que tenga una Category
para cada Supplier
este es un ejemplo perfecto de cuándo usar una unión cruzada.
A continuación se muestran ejemplos de registros para las tablas. Category
y Supplier
:
Para realizar la unión cruzada de estas dos tablas, necesitamos crear un nuevo objeto de negocio. Lo llamamos Supplier (and Categories)
en el panel Tablas, seleccione las dos tablas que desea unir. En el panel Uniones, indique que desea una unión cruzada entre ambas tablas.
Nota
No necesitamos indicar las columnas de unión porque, con la unión cruzada, las dos tablas no necesitan tener columnas en común para unirse. Aun así, podemos obtener una Category
para cada Supplier
Después de desplegar esta unión, veremos resultados como este. Observe que hay un Category
para cada Supplier
:
Unión externa izquierda
¿qué es una unión externa izquierda?
Una unión externa izquierda recupera todas las filas coincidentes de dos tablas (la interna entre ellas) y las filas que no coinciden con ninguna de la segunda tabla. Esto es útil cuando se desean todos los resultados comunes entre dos tablas, pero también se desean los valores nulos en la tabla izquierda.
Ejemplo
Quizás desee una lista de todos los clientes, independientemente de si realizaron un pedido. En este caso, una unión externa izquierda sería ideal. Este ejemplo es similar al anterior de unión interna, excepto que en este caso también queremos ver resultados donde hay una CustomerID
listado sin una OrderID
A continuación se muestran las tablas que utilizamos: Customer
y Order
Son las mismas tablas que usamos para el ejemplo de una unión interna.
Esta declaración de objeto de negocio es muy similar a la del ejemplo de unión interna. La única diferencia radica en el nombre y en que esta unión se declara como externa izquierda en lugar de interna.
Los resultados son los mismos que los de la unión interna, más las filas en el Customer
tabla que no coincide con ninguna fila en la Order
Tabla.
Hay 92 resultados esta vez.
Externo derecho
¿qué es una unión externa derecha?
La tercera unión es una Unión Externa Derecha, que es justo lo opuesto a una Unión Externa Izquierda. Usar una u otra no suele ser relevante, ya que siempre se puede cambiar una tabla del lado izquierdo al derecho de la unión y se consigue el mismo efecto. Los resultados variarán según la unión elegida y el orden de las tablas añadidas al panel Uniones.
Ejemplo
Como ejemplo de cambio de una Unión Externa Izquierda a una Unión Externa Derecha, puede que quiera ver todos sus clientes, con o sin pedidos, así como todos los detalles de los pedidos, con o sin pedidos o productos. La siguiente declaración es una forma de configurar esta lógica.
Al ejecutar los resultados o ver la cuadrícula rápida, se muestran los siguientes registros:
Unión
¿qué es un sindicato?
En App Builder, las uniones de unión generan una combinación de dos sentencias SELECT que apuntan a la misma columna. Una unión de unión combina los resultados de dos columnas diferentes (con el mismo nombre) de dos tablas distintas en una sola columna unificada. Si bien la mayoría de las uniones utilizan una columna de unión, la unión de unión no. Esto se debe a que otras uniones requieren contexto compartido entre las dos tablas para funcionar, mientras que una unión de unión solo requiere columnas compartidas.
Ejemplo 1
Por ejemplo, una unión interna entre Product
y Supplier
Las tablas mostrarían cada producto junto con su proveedor, mientras que una unión entre los Product
y Supplier
Las tablas le mostrarán una lista de todos los diferentes SupplierID
campos. Esto se debe a que la unión muestra esencialmente todos los resultados de la misma columna en dos tablas diferentes, y estas dos tablas solo comparten los SupplierID
Recuerde que, con las uniones, compartir contexto y tener la misma columna son dos criterios diferentes.
A continuación se muestran las tablas Proveedor y Producto.
Ahora puede crear su objeto de negocio que usará la unión. Nosotros lo llamamos Supplier (Union with Product)
Incorpore las tablas que usará en el panel Tablas. Declare una unión entre las dos tablas en el panel Uniones. Esta unión no requiere la columna "Unir". El panel Columnas solo permite agregar SupplierID
como columna porque es la única que las dos tablas tienen en común.
El conjunto de resultados contiene todos los SupplierID
's, incluidos los registros duplicados si el SupplierID
Aparece en ambas tablas.
Ejemplo 2
Otro caso de uso para una Unión es si un cliente le pide que encuentre a todos los encuestados, pero los usuarios pueden responder de varias maneras. Supongamos que un usuario puede responder por correo, que se introduce en una tabla llamada EmailRespondants
, pero también pueden responder mediante una llamada telefónica utilizando el PhoneRespondant
tabla. Podrías unir las tablas para encontrar las columnas que tienen en común, que podrían ser RespondantID
y RespondType
Para recibir una lista de todas las personas que respondieron y cómo lo hicieron. De esta manera, también puedes ver lo mismo. RespondantID
Varias veces, pero poder ver cómo respondieron cada vez.