Cómo utilizar un equi-join en sql

El más común combinación que utiliza el SQL DÓNDE filtro cláusula es el equi-unirse. Un equicombinación es un básico se unen con una DÓNDE cláusula que contiene una condición especifica que el valor en una columna en la primera tabla debe ser igual al valor de una columna correspondiente en la segunda tabla. La aplicación de una combinación de igualdad a las tablas de ejemplo trae un resultado más significativo:

SELECT * FROM EMPLOYEE, COMPENSATIONWHERE EMPLOYEE.EmpID = COMPENSATION.Employ -

Esta consulta produce los siguientes resultados:

EmpID FName LName Ciudad Emplear Teléfono Sueldo Bono ----- ------ ----- ---- ----- ------ ------ ----- 1 Whitey Ford Naranja 555-1001 1 33000 100002 Don Larson Newark 555-3221 2 18000 20003 Sal Maglie Nutley 555-6905 3 24000 50004 Bob Turley Passaic 555 a 8908 4 22 000 7000

En esta tabla de resultados, los salarios y bonificaciones a la derecha se aplican a los empleados nombrados por la izquierda. La mesa todavía tiene algo de redundancia debido a que la EmpID columna duplica la Emplear columna. Puede solucionar este problema mediante la reformulación ligeramente la consulta, así:

Video: SQL: Equi Join

EMPLEADOS SELECT *, COMPENSATION.Salary, COMPENSATION.BonusFROM EMPLEADOS, COMPENSATIONWHERE EMPLOYEE.EmpID = COMPENSATION.Employ. -

Esta consulta produce la siguiente tabla de resultados:

EmpID FName LName Ciudad Salario Teléfono Bono ----- ----- ----- ---- ----- ------ ----- 1 Whitey Ford Naranja 555-1001 33000 100002 Don Larson Newark 555-3221 18000 20003 Sal Maglie Nutley 555 a 6905 24000 50004 Bob Turley Passaic 555-8908 22000 7000

Esta tabla te dice lo que quiere saber, pero no le carga con los datos superfluos. La consulta es algo tedioso para escribir, sin embargo. Para evitar la ambigüedad, se puede calificar los nombres de columna con los nombres de las tablas de donde provenían. Al escribir esos nombres de tabla en varias ocasiones proporciona un buen ejercicio para los dedos, pero no tiene otro mérito.

Puede reducir la cantidad de escritura mediante el uso de alias (o nombres de correlación). Un alias es un nombre corto que representa un nombre de tabla. Si utiliza alias en la refundición de la consulta anterior, sale así:

SELECT * E., C.Salary, C.BonusFROM electrónico del empleado, COMPENSACIÓN CWHERE E.EmpID = C.Employ -

En este ejemplo, E es el alias para EMPLEADO, y C es el alias para la compensación. El alias es local a la declaración que se encuentra. Después de declarar un alias (en el DE cláusula), debe utilizar a lo largo de la declaración. No se puede utilizar tanto el alias y la forma larga del nombre de la tabla en el mismo comunicado.

Incluso si se pudiera mezclar la forma larga de nombres de tabla con los alias, que no le gustaría que, ya que al hacerlo crea gran confusión. Consideremos el siguiente ejemplo:

SELECT t1.c, T2.CFROM T1 T2, T2 T1WHERE t1.c gt; t2.c -

En este ejemplo, el alias para T1 es T2, y el alias para T2 es T1. Es cierto que esto no es una selección inteligente de alias, pero no está prohibida por las reglas. Si se mezcla con el alias de nombres de tabla de formato largo, no se puede saber qué tabla es cuál.

Video: TIPOS DE CONSULTA JOINS | SELECT INNER JOIN | SQL

El ejemplo anterior con alias es equivalente a la siguiente SELECCIONAR declaración sin alias:

SELECT t2.c, T1.CFROM T1, T2WHERE t2.c gt; t1.c -

SQL permite que se una a más de dos tablas. El número máximo varía de una aplicación a otra. La sintaxis es análoga a la de casos de dos mesa de esto es lo que parece:

SELECT * E., C.Salary, C.Bonus, Y.TotalSalesFROM electrónico del empleado, COMPENSACIÓN C, ytd_sales YWHERE E.EmpID = C.EmployAND C.Employ = Y.EmpNo -

Esta afirmación lleva a cabo una combinación de igualdad en tres mesas, tirando de datos de filas de cada una correspondiente a producir una tabla de resultados que muestra los nombres de los vendedores, la cantidad de ventas que son responsables, y su compensación. El gerente de ventas puede ver rápidamente si la compensación está en línea con la producción.

El almacenamiento de las ventas del año hasta la fecha de un vendedor en una tabla separada ytd_sales asegura un mejor rendimiento del equipo y fiabilidad de los datos que mantener esos datos en la tabla EMPLOYEE. Los datos en la tabla EMPLEADO es relativamente estática. nombre, dirección y número de teléfono de una persona no cambian muy a menudo. Por el contrario, las ventas del año hasta la fecha de cambio de frecuencia (que espero).

Debido a la mesa ytd_sales tiene un menor número de columnas que la tabla EMPLOYEE, es posible que pueda actualizar más rápidamente. Si, en el curso de la actualización de los totales de ventas, no se toca la tabla EMPLOYEE, se disminuye el riesgo de accidente modificar la información del empleado que debe permanecer igual.

Artículos Relacionados