Las combinaciones se utilizan para combinar dos tablas relacionadas.
En su ejemplo, puede combinar la tabla Empleado y la tabla Departamento, así:
SELECT FNAME, LNAME, DNAME
FROM
EMPLOYEE INNER JOIN DEPARTMENT ON EMPLOYEE.DNO=DEPARTMENT.DNUMBER
Esto daría como resultado un conjunto de registros como:
FNAME LNAME DNAME
----- ----- -----
John Smith Research
John Doe Administration
Usé un INNER JOIN
sobre. INNER JOIN
s combinar dos tablas para que solo se muestran los registros con coincidencias en ambas tablas y se unen en este caso, en el número de departamento (campo DNO en Empleado, DNUMBER en la tabla Departamento).
LEFT JOIN
s le permite combinar dos tablas cuando tiene registros en la primera tabla pero es posible que no tienen registros en la segunda tabla. Por ejemplo, supongamos que desea una lista de todos los empleados, además de los dependientes:
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_last, DEPENDENT.LNAME as dependent_last
FROM
EMPLOYEE INNER JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
El problema aquí es que si un empleado no tiene un dependiente, su registro no aparecerá en absoluto, porque no hay ningún registro coincidente en la tabla DEPENDIENTES.
Entonces, usas una izquierda join que mantiene todos los datos a la "izquierda" (es decir, la primera tabla) y extrae los datos coincidentes a la "derecha" (la segunda tabla):
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_first, DEPENDENT.LNAME as dependent_last
FROM
EMPLOYEE LEFT JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
Ahora tenemos todos de los registros de los empleados. Si no hay ningún dependiente que coincida con un empleado determinado, el dependent_first
y dependent_last
los campos serán nulos.