Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Hacer un select de un select

Estas en el tema de Hacer un select de un select en el foro de Bases de Datos General en Foros del Web. ¿Cómo se haría una consulta select, que actúa sobre otro select? Vamos, algo así: SELECT * FROM (SELECT * FROM TABLA WHERE CAMPO=2) LIKE "prueba_%" ...
  #1 (permalink)  
Antiguo 01/03/2005, 21:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 9 meses
Puntos: 6
Hacer un select de un select

¿Cómo se haría una consulta select, que actúa sobre otro select?

Vamos, algo así:

SELECT * FROM (SELECT * FROM TABLA WHERE CAMPO=2) LIKE "prueba_%"

Algunos diréis: si quieres hacer dos selects seguidos, lo mejor es que concatenes mediante AND las dos condiciones de dentro del where. Sí, pero no está de mal saberlo por si alguna vez no se puede hacer, y en concreto en este caso, el "select" del interior quiero que me devuelva los nombres de las tablas.

Saludos
  #2 (permalink)  
Antiguo 02/03/2005, 00:10
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
SELECT * FROM (SELECT * FROM TABLA WHERE CAMPO=2) AS X
WHERE CAMPO0 LIKE 'prueba_%'
  #3 (permalink)  
Antiguo 18/08/2009, 14:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 2
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Hacer un select de un select

Tal vez sirva algo.....saludos...

SELECT CAM1,CAM2 FROM
( SELECT CAMPO1 AS CAM1,CAMPO2 AS CAM2 FROM TABLA
WHERE CAMPO=2 AND CAMPO0 LIKE 'prueba_%'[/QUOTE]
) SELECCIONAR
  #4 (permalink)  
Antiguo 20/08/2009, 18:50
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Hacer un select de un select

Alguien puede dar la explicacion logica de qe hace esto?¿ y en que caso usarlo?¿

Gracias
  #5 (permalink)  
Antiguo 20/08/2009, 19:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Hacer un select de un select

La lógica es simple: Tienes un dos conjuntos de relaciones A y B; entre ellos quieres realizar la selección de un subconjunto que cumple los criterios m, n y o, pero al hacerlo te das cuenta que en realidad usar los tres criterios al unir ambas tablas genera un calculo muy grande inutilmente, porque de la relación A hay al menos un 70 que no cumple el criterio "m", entonces ¿qué sentido tiene usar la tabla entera en la operación? Sería mejor eliminar ese 70% antes de la selección principal.
En ese ejemplo lo que haces es realizar un prefiltrado sobre uno de los dos miembros de la selección para reducir el número de combinaciones a analizar y de esa forma aumentar la performance de la operación.
¿Se comprende?
Este sería uno de los casos. Pero ten en cuenta que no existen reglas para la utilización de subconsultas. No hay forma de responder tu pregunta. Hay miles de razones distintas por las que se puede considerar realizar una subconsulta. En esencia es una decisión que los developers toman según lo que deseen obtener.
Se pueden usar subconsultas para obtener sumatorias, agrupamientos, cálculos espaciales, etc. Pueden usarse subconsultas que sean subconsultas de subconsultas...
En mi caso, por ejemplo, tengo algunas consultas que tienen tres niveles de subconsultas, cada una de las cuales a su vez genera una tabla derivada que se integra en una consulta mayor, dando como resultado... un reporte de prestación de servicios de un taller mecánico, a través de un año entero, agrupado y discriminado por vehículo, mes, operario y responsable de tareas...
Como verás, el uso puede ser muy variado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 20/08/2009 a las 19:37
  #6 (permalink)  
Antiguo 23/08/2009, 16:09
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 8 meses
Puntos: 15
Respuesta: Hacer un select de un select

Muy util si se desea presetar los datos en columas.

ej:

select
tc.registro,
tc.valor1,
tc.cod_articulo,
Articulo = (select txt_artic from tciudad a where t.cod_articulo = tc.cod_articulo),
tc.cod_ciudad,
Ciudad = (select txt_ciudad from tciudad t where t.cod_ciudad = tc.cod_ciudad),
tc.cod_pais,
Pais = (select txt_pais from tpais p where p.cod_pais = tc.cod_pais)
from tcampos tc
order by tc.cod_articulo ASC;

Para el usuario esto es mas facil de visualizar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:59.