Saltar al contenido

Cómo Crear y Utilizar Uniones y Uniones SQL

Al crear objetos de negocio en la capa de lógica de negocios, a menudo es necesario dibujar en dos tablas separadas para mostrar datos de ambas. App Builder, puede configurar un tipo Join para combinar columnas de una o más tablas u objetos comerciales para crear un nuevo objeto comercial. Este artículo lo guiará a través de los cuatro tipos de uniones SQL compatibles con App Builder- Interior, Exterior Izquierdo, Cruz y Exterior Derecho - y dar ejemplos sobre cómo crearlos y usarlos en App Builder además, también veremos otro tipo de relación llamada Unión que está disponible para configuración en Uniones en App Builder.

  • Inner - El tipo de unión interna devuelve filas que existen en cada tabla
  • Cross - La unión cruzada produce un producto cartesiano
  • Left Outer - Una unión externa izquierda devuelve todas las filas de la tabla izquierda especificada, independientemente de una coincidencia en la tabla derecha
  • Right Outer - Una unión externa derecha devuelve todas las filas de la tabla derecha especificada, independientemente de una coincidencia en la tabla izquierda
  • Union - 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 uniones más utilizadas. Cuando se dan 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.

Diagrama interno

Ejemplo

Digamos que queremos un objeto comercial de clientes que han realizado un pedido y los detalles del pedido realizado. Este sería un gran caso de uso para una unión interna, porque una unión interna puede devolver registros en la intersección de dos tablas. Nuestro conjunto resultante debe incluir todos los CustomerID que tiene un OrderID a continuación se muestran las dos tablas Customer y Order a la que nos uniremos.

Tabla de clientes

Una tabla de pedidos

Antes de crear su unión interna, debe crear un objeto comercial. 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 la misma.

join1.png

Pestaña de columna interna

Unión interna

El conjunto de resultados debe incluir a los clientes que han realizado pedidos. En este caso, nuestros datos dieron como resultado una fila:

Innerresults

Unión Cruzada

¿qué Es una Unión Cruzada?

Una unión cruzada produce un conjunto de resultados que es la cantidad de filas x en la primera tabla multiplicada por la cantidad de filas y en la segunda tabla. El conjunto de resultados será x * y filas.

Al intentar decidir qué tiene sentido con una unión cruzada, resulta útil decir que el conjunto resultante tendrá columnas de la tabla 1 por cada columna de la tabla 2.

Diagrama cruzado

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 comercial que combine estas dos tablas. Nos gustaría obtener un conjunto resultante que tenga una Category para cada Supplier este es un ejemplo perfecto de cuándo utilizar una unión cruzada.

A continuación se muestran registros de ejemplo para las tablas Category y Supplier:

Categoríaregistros

Un proveedor registra

Para unir de forma cruzada estas dos tablas, necesitamos crear un nuevo objeto comercial. Lo llamamos nuestro Supplier (and Categories). Ingresa las dos tablas que queremos unir de forma cruzada en el panel Tablas. En el panel Uniones, indica que quieres realizar una unión cruzada entre las dos tablas.

join2.png

Una columna cruzada

Un cruce de uniones

Nota

No necesitamos indicar las columnas de unión porque, con la unión cruzada, las dos tablas no tienen que tener columnas en común para unirse. Aún podemos obtener una Category para cada uno Supplier.

Después de desplegar esta unión, veremos resultados como este. Observe que hay un Category para cada uno Supplier:

Resultados cruzados

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 las dos) más las filas que no coinciden con ninguna fila de la segunda tabla. Esto es útil cuando desea todos los resultados comunes entre dos tablas, pero también desea los valores nulos en la tabla izquierda.

Un diagrama externo izquierdo

Ejemplo

Es posible que desee una lista de todos los clientes, ya sea que hayan realizado un pedido o no. En este caso, una unión externa izquierda sería perfecta. Este ejemplo es similar al ejemplo de unión interna anterior, 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.

Customertable

Una tabla de pedidos

Esta declaración de objeto comercial es muy similar al objeto comercial del ejemplo de unión interna. La única diferencia es el nombre y la declaración de esta unión como una unión externa izquierda en lugar de una unión interna.

join3.png

Pestaña de columna interna

A lo se une

Los resultados nos dan los mismos resultados que nos dio 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.

Muchos resultados

Exterior Derecho

¿qué Es una Unión Externa Derecha?

La tercera unión es una unión externa derecha, que es exactamente lo opuesto a una externa izquierda. Normalmente no importa si se utiliza una u otra, ya que siempre se puede cambiar una tabla del lado izquierdo al lado derecho de la unión y se logra el mismo efecto. Los resultados variarán según la unión que elija y el orden de las tablas agregadas al panel Uniones.

Diagrama de un ro

Ejemplo

Como ejemplo de cambio de una unión externa izquierda a una unión externa derecha, es posible que desee ver todos sus clientes con o sin pedidos, así como todos los detalles de pedidos con o sin pedidos o productos. La siguiente declaración es una forma de configurar esta lógica.

join4.png

Columnas A ro

A ro se une

Cuando ejecutamos los resultados o vemos los resultados de la cuadrícula rápida, vemos que se devuelven los siguientes registros:

Resultados de A ro

Unión

¿qué Es un Sindicato?

En App Builder las uniones de unión producen 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 (que tienen el mismo nombre) de dos tablas diferentes en una columna unificada. Si bien la mayoría de las uniones utilizan una columna de unión, la unión de unión no lo hace. Esto se debe a que otras uniones requieren un contexto compartido entre las dos tablas para funcionar, pero una unión de unión solo requiere columnas compartidas.

Ejemplo 1

Por ejemplo, una unión interna entre el 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 mismos resultados. SupplierID. Recuerde que con las uniones, compartir contexto y tener la misma columna son dos criterios diferentes.

A continuación se muestran las dos tablas Proveedor y Producto.

Resultados de un proveedor

Resultados de un producto

Ahora puede crear su objeto comercial que utilizará la unión. La nuestra se llama Supplier (Union with Product). Incorpore las tablas que utilizará en el panel Tablas. Declare una unión entre las dos tablas en el panel Uniones. Nuevamente, esta unión no requiere unir columnas. El panel Columnas solo nos permite agregar SupplierID como columna porque es la única columna que las dos tablas tienen en común.

join5.png

Una unión de columnas

Un sindicato se une

El conjunto de resultados contiene todos los SupplierID's, incluidos los registros duplicados si el SupplierID aparece en ambas tablas.

Resulta una unión

Ejemplo 2

Otro caso de uso de una unión es si un cliente le pide que busque a todos los encuestados, pero los usuarios pueden responder de varias maneras. Digamos que un usuario puede responder por correo, que se ingresa 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 han respondido y cómo respondieron. De esta manera, también puedes ver lo mismo. RespondantID varias veces, pero poder ver cómo respondieron cada vez.