Unidad 4. Consultas multitabla (II)


4.3. La diferencia EXCEPT

Aparecen en la tabla resultante las filas de la primera consulta que no aparecen en la segunda.
Las condiciones son las mismas que las de la unión.

   {<consulta>|(<consulta>)}

   EXCEPT

{<consulta>|(<consulta>)}

 [{EXCEPT  {<consulta>|(<consulta>)}}[ ...n ] ]

[ORDER  BY {expression_columna|posicion_columna [ASC|DESC]}

             [  ,...n ]]

Por ejemplo tenemos las tablas T1 y T2.

T1 T2
Cod
1
2
4
5
6
Codigo
2
3
4
5
SELECT cod FROM T1

EXCEPT

SELECT codigo FROM T2;

Devuelve:

Cod
1
6

Ejemplo:
Listar los productos que no aparezcan en ningún pedido.

SELECT idfab, idproducto

FROM  productos

EXCEPT

SELECT DISTINCT fab, producto

FROM pedidos;

Para practicar puedes realizar este Ejercicio La diferencia EXCEPT.

4.4. La intersección INTERSECT

Tiene una sintaxis parecida a las anteriores pero en el resultado de la intersección aparecen las filas que están simultáneamente en las dos consultas.
Las condiciones son las mismas que las de la unión.

   { <consulta>|(<consulta>)}

   INTERSECT

{<especificacion_consulta>|(<especificacion_consulta>)}

           [{INTERSECT {<consulta>|(<consulta>)}} [ ...n ] ]

[ORDER  BY {expression_columna|posicion_columna [ASC|DESC]}

             [  ,...n ]]

Retomando el ejemplo anterior:

SELECT cod FROM T1

INTERSECT

SELECT cod FROM T2;

Devuelve:

Cod
2
4
5

Ejemplo: Obtener todos los productos que valen más de 20 euros y que además se haya vendido en un pedido más de 300 euros de ese producto.

SELECT idfab, idproducto

FROM  productos

WHERE precio > 20

INTERSECT

SELECT fab, producto

FROM pedidos

WHERE importe > 300;

Para practicar puedes realizar este Ejercicio La intersección INTERSECT.

Febrero-2010
Pág. 4.2

Atrás  Inicio  Adelante



.