Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Subconsultas Anidar mas de 2 consultas (https://www.clubdelphi.com/foros/showthread.php?t=59301)

mike_1979 21-08-2008 21:51:28

Subconsultas Anidar mas de 2 consultas
 
Hola de nuevo, yo acá con otro problema, logré realizar una subconsulta pero no puedo hacer una sub-subconsulta, por ejemplo:

select T1.campo1, --> consulta
(select T2.campo1 from T2 where T2.campo1 = T1.campo1)--->subconsulta
from T1 where campo1 < 10 -->consulta

como hago para poner otra subconsulta dentro de la subconsulta?

Caral 21-08-2008 22:14:30

Hola
No se si pretenderás algo mas, pero esta es una consulta a 2 tablas, me pregunto, para que una subconsulta? en algo tan sencillo?.
Saludos

mike_1979 21-08-2008 22:27:05

Basicamente lo que necesito es q la 1º subconsulta se ejecute por cada registro de la consulta principal y que la segunda subconsulta se ejecute por cada registro de la 1º subconsulta, algo asi como un bucle dentro de otro:

select.... -----> consulta principal

...............select..... ----> subconsulta1

..............................select.........from.....subconsulta2

...............from....

from......

tcp_ip_es 22-08-2008 09:55:58

pero no querrás hacer mejor un inner join... a parte que estas nombrando campos iguales con lo que el interprete te pedira que cambies el nombre del campo ... a parte con lo que pretendes hacer los dos campos que muestras serían iguales pero de distintas tablas.... no se se me ocurre que tu consulta podría quedaría asi...

Código SQL [-]
select T1.Campo1, T2.Campo1  -> son iguales asi que no se para que quieres mostrarlos ??¿¿
from T1 inner join T2  on T1.campo1=t2.campo1 
where T1.campo1 < 10

mike_1979 22-08-2008 12:22:39

Si, Tony en cuanto a ese tipo de consultas no tengo problemas, mi poblema radica en poder poner una subconsulta dentro de otra subconsulta que a su vez está en la consulta principal. Esto sería lo que necesito poder hacer:
Código:

select alumno.apellido, alumno.idalumno
...............select materia.nombre, materia.idmateria 
..............................select infxmateria.nota from infxmateria where infxmateria.idalumno = alumno.idalumno and infxmateria.idmateria = materia.idmateria
...............from materias where curso = 1
from alumno where alumno.curso = 1


tcp_ip_es 22-08-2008 12:39:31

pues realmente no te entiendo porque esa consulta sería como esta:

Código SQL [-]
select alumno.apellido, alumno.idalumno,materia.nombre, materia.idmateria,infxmateria.nota 
from (infxmateria inner join alumno on  infxmateria.idalumno = alumno.idalumno) 
inner join materia on  infxmateria.idmateria = materia.idmateria
where alumno.curso = 1

no puedes meter en los where campos que no estén en su select....


La franja horaria es GMT +2. Ahora son las 03:47:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi