Cómo utilizar un equi-join en SQL

El más común combinación que utiliza SQL DÓNDE filtro de la cláusula es el equi-join. Un equicombinación se unen a una base con un 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 un equi-join de 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 Salario Bonus ----- ------ ----- ---- ----- ------ ------ ----- 1 Whitey Ford Naranja 555 a 1.001 1 33 000 100 002 Don Larson Newark desde 555 hasta 3221 2 18,000 20,003 Sal Maglie Nutley 555 a 6905 3 24000 50004 Bob Turley Passaic 555-8908 4 22 000 7000

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

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

Esta consulta produce la tabla de resultados siguientes:

EmpID FName LName Ciudad Salario Teléfono Bono ----- ----- ----- ---- ----- ------ ----- 1 Whitey Ford Naranja 555 hasta 1.001 33.000 100002 Don Larson Newark 555 a 3.221 18.000 20.003 Sal Maglie Nutley 555-6.905 24000 50004 Bob Turley Passaic 555 a 8.908 22.000 7.000

Esta tabla le dice lo que usted quiere saber pero no le carga con cualquier datos extraños. La consulta es algo tedioso para escribir, sin embargo. Para evitar ambigüedades, puede calificar los nombres de columna con los nombres de las tablas de donde vinieron. Al escribir esos nombres de tabla proporciona repetidamente buen ejercicio para los dedos, pero no tiene otro mérito.

Usted 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 los alias en la refundición de la consulta anterior, sale así:

SELECT E. *, C.Salary, C.BonusFROM EMPLEADO E INDEMNIZACIÓN CWHERE E.EmpID = C.Employ -

En este ejemplo, E es el alias de EMPLEADO, y C es el alias de indemnización. El alias es local a la declaración que se encuentra en. 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 usted podría mezclar la forma larga de nombres de tablas con alias, usted no quiere, porque al hacerlo crea gran confusión. Considere el siguiente ejemplo:

SELECT t1.c, T2.CFROM T1 T2, T2 T1WHERE t1.c> 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á prohibido por las reglas. Si mezcla los alias con los nombres de tabla de formato largo, no se puede saber qué tabla es cuál.

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

T2.c SELECT, T1.CFROM T1, T2WHERE t2.c> 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 aquí es lo que parece:

SELECT E. *, C.Salary, C.Bonus, Y.TotalSalesFROM EMPLEADO E INDEMNIZACIÓN C, ytd_sales YWHERE E.EmpID = C.EmployAND C.Employ = Y.EmpNo -

Esta afirmación lleva a cabo un equi-join en tres mesas, tirando de datos de filas de cada uno 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.

Almacenamiento del año hasta la fecha de las ventas 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ático. 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 cambian con frecuencia (que esperas).

Debido a que la tabla ytd_sales tiene menos columnas que la tabla EMPLOYEE, es posible que pueda actualizar más rápidamente. Si, en el curso de actualización de los totales de ventas, no tocar la tabla EMPLOYEE, se disminuye el riesgo de modificar accidentalmente información de los empleados que deben permanecer igual.




» » » » Cómo utilizar un equi-join en SQL