miércoles, 17 de junio de 2015

Obtener datos de varias tablas


Se nos puede dar un caso muy habitual en el que tengamos que obtener campos de distintas tablas para operar con ellos. Para este caso debemos hacer mención a las distintas tablas de donde se van a sacar los datos. En el caso de que algun campo se llame igual en ambas, utilizamos el nombre de la tabla seguido de un punto y el nombre del campo. Por ejemplo: empleados.departamento.
Sintaxis

SELECT tabla1.campo, tabla2.campo
FROM tabla1, tabla2
WHERE tabla1.campo1 = tabla2.campo2;

Más adelante veremos otra forma de obtención de datos de varias tablas mediante la cláusula JOIN.

Nota: Al unir dos tablas hay que relacionarlas con un campo común, que en estos ejemplos es departamento. Normalmente suelen ser claves extranjeras.

Ejemplo 1:
Obtener el apellido, trabajo, departamento y localidad de todos los empleados de la empresa.
SELECT apellido, trabajo, e.departamento, nombre, localidad
FROM empleados AS e, departamentos AS d
WHERE e.departamento = d.departamento;

Ejemplo 2:
Seleccionar el nombre, trabajo, departamento, localidad y salario de los empleados que tengan un salario superior a 2000 Euros.
SELECT apellido, trabajo, d.departamento, localidad, salario
FROM empleados AS e, departamentos AS d
WHERE salario > 2000 AND d.departamento = e.departamento;

Ejemplo 3:
Recuperar el nombre, descripción, precio y nombre de la categoría a la que pertenecen los productos.
SELECT p.nombre, p.descripcion, p.precio, c.nombre
FROM productos AS p, categorias AS c
WHERE p.idcategoria = c.id;

No hay comentarios:

Publicar un comentario