Manual de MySQL
uniones
Se trata de consultas realizadas sobre datos de varias tablas. para ello esas tablas deben
estar relacionadas por al menos un campo. Ejemplo clásico:
select nombre, apellidos, fecha_alquiler from cliente,
alquiler where cliente.dni=alquiler.dni;
A veces el nombre de los campos es ambiguo (porque el mismo nombre se emplea es
más de una de las tablas implicadas en la consulta) y entonces se debe indicar la tabla
junto al nombre del campo, separados por un punto:
select cliente.nombre, cliente.apellidos, fecha_alquiler
from cliente, alquiler where cliente.dni=alquiler.dni;
Se puede poner un alias a las tablas con la palabra as:
select c.nombre, c.apellidos, fecha_alquiler
from cliente as c, alquiler where cliente.dni=alquiler.dni;
Eso muestra las fechas de cada alquiler junto con nombre y apellidos del cliente que
alquiló. Para ello ambas tablas deben estar relacionadas por el DNI. Esta misma
consulta se puede hacer en el formato SQL ANSI-92 (totalmente soportado por MySQL)
de esta forma:
select nombre, apellidos, fecha_alquiler from clientes join
alquiler on clientes.dni=alquiler.dni;
Es más recomendable esta segunda forma ya que permite realizar asociaciones
avanzadas. De hecho es posible usar estas formas de unión en el apartado join
cross join. Producto cruzado. Combina cada registro de la primera tabla con
cada registro de la tabla relacionada.
inner join. Unión normal. Muestra sólo registros de ambas tablas que estén
relacionados.
left join. Muestra todos los registros de la primera tabla y sólo los registros
relacionados en la segunda.
right join. Muestra todos los registros de la segunda tabla y sólo los registros
relacionados en la primera.
21