Si varias columnas tienen los mismos nombres pero los tipos de datos no coinciden, la cláusula NATURAL JOIN se puede modificar con la cláusula USING para especificar las columnas que deben usarse para un EQUIJOIN .
- La cláusula USING se usa para hacer coincidir solo una columna cuando coincide más de una columna.
- NATURAL JOIN y USING Clause son mutuamente excluyentes.
- No debe tener un calificador (nombre de tabla o alias) en las columnas a las que se hace referencia.
- NATURAL JOIN utiliza todas las columnas con nombres y tipos de datos coincidentes para unir las tablas. La cláusula USING se puede usar para especificar solo aquellas columnas que se deben usar para un EQUIJOIN.
EJEMPLOS:
Aplicaremos los comandos mencionados a continuación en las siguientes tablas base:
CONSULTA 1: Escriba una consulta SQL para encontrar la ubicación de trabajo de los empleados. ¿Dé también sus respectivos employee_id y last_name?
Input : SELECT e.EMPLOYEE_ID, e.LAST_NAME, d.LOCATION_ID FROM Employees e JOIN Departments d USING(DEPARTMENT_ID); Output :
Explicación: El ejemplo que se muestra une la columna DEPARTMENT_ID en las
tablas EMPLOYEES y DEPARTMENTS y, por lo tanto, muestra la ubicación donde trabaja un empleado.
Aplicaremos los comandos mencionados a continuación en las siguientes tablas base:
CONSULTA 2: ¿Escribe una consulta SQL para encontrar location_id, street_address, postal_code y su respectivo nombre de país?
Input : SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id); Output :
Explicación: El ejemplo que se muestra une la columna COUNTRY_ID en las
tablas LOCATIONS y COUNTRIES y, por lo tanto, muestra los detalles requeridos.
NOTA: Cuando usamos la cláusula USING en una declaración de combinación, la columna de combinación no se califica con el Alias de la tabla. No lo alias, incluso si la misma columna se usa en otra parte de la declaración SQL:
Ejemplo:
Input: SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id) WHERE c.country_id'IT'; Output:
Explicación: dado que la columna en la cláusula USING se usa nuevamente en la cláusula WHERE, arroja un error al usuario.
Publicación traducida automáticamente
Artículo escrito por akanshgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA