Una subconsulta permite insertar una consulta SELECT anidada dentro de otras cláusulas SQL como WHERE, HAVING, FROM. Se pueden usar para seleccionar filas que dependen de datos de la misma tabla u otras tablas, y tienen tres formas de sintaxis: comparación, expresión IN, EXISTS.
2. DEFINICION
Una subconsulta es una instrucción SELECT anidada dentro de
una instrucción
INSERT...INTO, DELETE, o UPDATE o dentro de otra
subconsulta.
Puede utilizar tres formas de sintaxis para crear una
subconsulta:
comparación [ANY | ALL | SOME] (instrucción SQL)
expresión [NOT] IN (instrucción SQL)
[NOT] EXISTS (instrucción SQL).
3. Se puede poner
Una sub consulta en una una sub consulta
sentencia SELECT que en un
es incrustada en otra número de
cláusula de otra sentencia cláusulas SQL,
incluyendo:
SELECT. • La cláusula
Se pueden construir WHERE
sentencias poderosas de • La cláusula
forma simple con el uso de HAVING
sub consultas. • La cláusula
Esto puede ser muy utilizado FROM
En la sintaxis:
cuando Operador incluye
se necesiten seleccionar una condición
filas de una tabla con de comparación
condiciones que dependan como >, = o IN
de
datos de la misma tabla.
4. select a.fecha ,a.texto , b.cadena
from tabla_A a , tabla_B b
where upper(a.texto) like
'%'||b.cadena||'%'
and b.cadena in (select cadena from
tabla_B where id='1001')
and a.fecha>'01/01/08'
order by a.fecha;
5. Es una instrucción
SELECT, que sigue el
mismo formato y reglas
que cualquier otra
Instrucción instrucción SELECT.
SQL Debe ir entre
paréntesis.
SELECT * FROM Productos WHERE
PrecioUnidad > ANY
(SELECT PrecioUnidad FROM
DetallePedido WHERE Descuento >= 0 .25);
6. A.- Lista con el nombre, cargo y
salario de todos los agentes de B.- lista con el nombre y el precio unitario
ventas cuyo salario es mayor de todos los productos con el mismo precio
que el de todos los jefes y que el almíbar anisado
directores
SELECT DISTINCTROW NombreProducto,
SELECT Apellidos, Nombre, Precio_Unidad FROM Productos
Cargo, Salario FROM Empleados WHERE (Precio_Unidad = (SELECT
WHERE Cargo LIKE "Agente Precio_Unidad FROM Productos WHERE
Ven*" AND Salario > ALL Nombre_Producto = "Almíbar anisado");
(SELECT Salario FROM
Empleados WHERE (Cargo LIKE
"*Jefe*") OR (Cargo LIKE
"*Director*"));
7. C.- Recupera el Código del Producto y la Cantidad
pedida de la tabla pedidos, extrayendo el nombre
del
producto de la tabla de productos.
SELECT DISTINCTROW Pedidos.Id_Producto, Pedidos.
Cantidad,
(SELECT DISTINCTROW Productos.Nombre FROM
Productos WHERE
Productos.Id_Producto = Pedidos.Id_Producto) AS
ElProducto FROM
Pedidos WHERE Pedidos.Cantidad > 150 ORDER BY
Pedidos.Id_Producto;