Las uniones internas son las que se utilizan con más frecuencia en SQL. Devuelven sólo la información que existe en dos o más tablas de base de datos. La condición de unión determina qué registros están emparejados y se especifica en la cláusula WHERE. Por ejemplo, si necesita una lista de coincidencias conductor/vehículo en las que tanto el vehículo como el conductor se encuentran en la misma ciudad, la siguiente consulta SQL realiza esta tarea:
Seleccione el apellido, el nombre, el tagFROM de los conductores, los vehículos DONDE están los conductores.location = vehicles.location
Aquí están los resultados:
apellido primer nombre tag
———– ————– —-
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT
Nótese que los resultados son exactamente lo que se buscaba. Es posible refinar aún más la consulta especificando criterios adicionales en la cláusula WHERE. Suponga que la consulta original corresponde a los conductores de vehículos que no están autorizados a conducir (de camioneros a automóviles y viceversa). Puede utilizar la siguiente consulta para resolver este problema:
Seleccionar apellido, nombre, etiqueta, vehículos.classFROM conductores, vehículosDÓNDECONDER.location = vehículos.locationAND conductores.class = vehículos.class
Este ejemplo especifica la tabla de origen para el atributo class en la cláusula SELECT porque la clase es ambigua; aparece en ambas tablas. El código normalmente especificaría qué columna de la tabla debería incluirse en los resultados de la consulta. En este caso, no importa, ya que las columnas son idénticas y están unidas con un equijoin. Sin embargo, si las columnas contuvieran datos diferentes, esta distinción sería crítica. Aquí están los resultados de esta consulta:
apellido nombre nombre etiqueta class
———– ————– —- ——
Baker Roland H122JM Car
Smythe Michael D824HA Truck
Jacobs Abraham J291QR Coche
Las filas que faltaban se emparejaron con Michael Smythe a un coche y Abraham Jacobs a un camión, vehículos que no estaban autorizados a conducir.
También puede utilizar uniones internas para combinar datos de tres o más tablas.