Cómo usar un básico unirse sql
Cualquier consulta SQL multitable es un tipo de unión. Las tablas de origen se unen en el sentido de que la tabla de resultados incluye información procedente de todas las tablas de origen. El más simple es unirse a una de dos mesa SELECT que no tiene DÓNDE calificadores cláusula: Cada fila de la primera tabla se une a cada fila de la segunda tabla.
La tabla de resultados es el producto cartesiano de las dos tablas de origen. El número de filas en la tabla de resultados es igual al número de filas de la primera tabla de origen multiplicado por el número de filas de la segunda tabla de origen.
Por ejemplo, imagine que usted es el jefe de personal para una empresa y que parte de su trabajo es mantener los registros de los empleados. La mayoría de los datos de los empleados, como la dirección y número de teléfono, no es especialmente sensible. Sin embargo, algunos datos, como salario actual, deberían estar disponibles sólo a personal autorizado. Para mantener la seguridad de la información sensible, que sea en una tabla separada que está protegido por contraseña.
Considere el siguiente par de tablas:
COMPENSACIÓN DEL EMPLEADO -------- ------------ EmpID EmployFName SalaryLName BonusCityPhone
Llenar las tablas con algunos datos de ejemplo:
EmpID FName LName Ciudad Teléfono ----- ----- ----- ---- ----- 1 Whitey Ford Naranja 555-10012 Don Larson Newark 555 a 32.213 Sal Maglie Nutley 555 a 69.054 Bob Turley Passaic 555-8908Employ Sueldo Bono ------ ------ ----- 33 000 100 002 18 000 1 20 003 24 000 50 004 22 000 7000
Crear una tabla de resultados virtual con la siguiente consulta:
SELECT * FROM EMPLOYEE, COMPENSACIÓN -
Esto es lo que produce la consulta:
EmpID FName LName Ciudad Salario Emplear Teléfono Bono ----- ----- ----- ---- ----- ------ ------ ----- 1 Whitey Ford Naranja 555-1001 1 33000 100001 Whitey Ford Naranja 555-1001 2 18,000 20,001 Whitey Ford Naranja 555-1001 3 24000 50001 Whitey Ford Naranja 555-1001 4 22000 70002 Don Larson Newark 555-3.221 mil 1 33 000 100 002 Don Larson Newark 555- 3221 2 18 000 20 002 Don Larson Newark 555 hasta 3221 3 24000 50002 Don Larson Newark 555 hasta 3221 4 22,000 70,003 Sal Maglie Nutley 555-6.905 1 33000 100003 Sal Maglie Nutley 555-6.905 2 18,000 20,003 Sal Maglie Nutley 555-6.905 3 24000 50003 Sal Maglie Nutley 555-6905 4 22000 70004 Bob Turley Passaic 555-8908 1 33000 100004 Bob Turley Passaic 555-8908 2 18000 20004 Bob Turley Passaic 555-8908 3 24000 50004 Bob Turley Passaic 555-8908 4 22 000 7000
La tabla de resultados, que es el producto cartesiano de las mesas de los empleados y la compensación, contiene una considerable redundancia. Por otra parte, no tiene mucho sentido. Combina cada fila de EMPLEADO con cada fila de la indemnización.
Las únicas filas que transmiten información significativa son aquellos en los que la EmpID número que venía de EMPLEADO coincide con el Emplear número que provenía de una indemnización. En esas filas, nombre y dirección de un empleado se asocian a su compensación.
Cuando usted está tratando de obtener información útil de una base de datos de varias tablas, el producto cartesiano producido por un básico unirse es casi nunca lo que quiere, pero es casi siempre el primer paso hacia lo que quieres. Mediante la aplicación de las restricciones a la ÚNETE con un DÓNDE cláusula, puede filtrar las filas no deseadas.