Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Clausulas avanzadas de selección


Seguimos con las clausulas avanzadas, esta vez pasamos a explicar el outer join, unión, intersect y minus.


24/6/08 - Para comenzar os comento un poco que en artículos anteriores hemos hablado de la combinación de tablas, concepto que vamos a necesitar tener bastante claro para poder entender el resto de clausulas avanzadas de selección.

Combinación externa (outer join)

Esta clausula nos permite seleccionar filas de una tabla aunque no tengan correspondencia con flas de la otra tabla con la que se la combina.

Su formato es el siguiente:

select tabla1.columna1, tabla1.columna2, tabla2.columna2
from tabla1, tabla2
where tabla1.columna1=tabla2.columna1;


Como veis es bastante fácil y no crea mayor duda. Los registros que no tengan correspondencia con la otra tabla no aparecerán. Para que aparezcan tendremos que colocar el símbolo (+) al final del where y la columna que queremos que aparezca.

Un ejemplo de select seria el siguiente:

select departamento.num, departamento.nombre, emple.nombre
from departamento, nombre
where departamento.num=emple.num;


Aquí agrupamos por el num del departamento que se encuentra en las dos tablas.

Operador unión

Este operador combina los resultados de dos columnas. Si existe alguna fila duplicada solo aparece una en el resultado.

Su formato es el siguiente:

select col1, col2, ... from tabla1 where condición
union
select col1, col2, ... from tabla2 where condición;


Si queremos que nos aparezcan también las filas duplicadas tenemos que utilizar el operador unión all

Por ejemplo si quisiéramos mostrar todos los trabajadores de una empresa, tanto los nuevos como los dados de baja tendríamos que hacer una sentencia como esta:

select nombre from trabajadores_nuevos
union
select nombre from trabajadores_viejos;


Operador intersect

Este operador nos devuelve las filas que son iguales en ambas consultas. Como en el anterior por defecto las filas duplicadas se eliminan y no se muestran en el resultado.

Su formato es el siguiente:

select col1, col2, ... from tabla1 where condición
intersect
select col1, col2, ... from tabla2 where condición;


Un ejemplo muy sencillo seria mostrar los alumnos que todavía están estudiando.

select nombre from alumnos_activos
intersect
select nombre from alumnos;


Operador minus

El operador minus nos devuelve las flas que están en la primera select y no en la segunda. Como en los casos anteriores las filas duplicadas no se muestran en el resultado.

Su formato es:

select col1, col2, ... from tabla1 where condición
minus
select col1, col2, ... from tabla2 where condición;


Un ejemplo para este operador seria mostrar los alumnos que no están en actives

select nombre from alumnos
minus
select nombre from alumnos_activos;


Para finalizar os comento que estos tres últimos operadores los podemos encadenar, teniendo en cuenta que siempre se evalúan de izquierda a derecha.

Además es importante saber que si vas a realizar este tipo de consultas siempre tiene que haber el mismo número de columnas en las dos select y que los tipos de datos deben coincidir.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 2 categorias relacionadas

 Autoría, licencia y acciones sobre este artículo

Informe de Sara Alvarez*
Equipo DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Manual de iniciación a la programación

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Programación
+ Entrar en Lenguaje SQL


 Comentarios de los visitantes
Aun no hemos recibido comentarios de este artículo.
Puedes ser el primero en enviar tu comentario.
  Ir arriba

Manuales relacionados
+Manual de iniciación a la programación
Categorías
+Programación
+Lenguaje SQL

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia