![]() |
Consulta SQL
Hola Amigos:
Gracias por estar siempre de ese lado para ayudarnos con nuestras inquietudes. Mi duda es por qué no funciona la siguiente consulta SQL: Antes les comento que tengo 2 tablas; Materias Correlativas En Materias tengo los campos codigo,nombre,etc... En Correlativas tengo los campos codigo1,correlativa. Como ustedes sabran las relaciones entre las 2 tablas estan dadas entre los campos codigo de la tabla Materias y los campos codigo1 y correlativas. Relacion 1 a muchos... Codigo es primary key de Materias y codigo1 y correlativas son primary key de correlativas... Lo que no logro obtener con esta consulta... SELECT materias.nombre FROM materias inner join correlativas on materias.codigo = correlativas.codigo1 WHERE materia = (select codigo FROM materias WHERE nombre = 'Programcion 2') ...es saber que materias necesito tener aprobadas para cursar Programacion 2 Lo probe en Interbase y no funciona... Desde ya, muchas gracias por su ayuda |
Si entiendo bien (es que el término correlativa no me es familiar) la tabla correlativas almacena las materias que deben ser aprobadas para determinado curso. Así, si por ejemplo
materias Código:
codigo | nombre Código:
codigo1 | correlativa ¿Es así? Bueno, de ser así, fíjate que lo que tú quieres listar no son materias sino correlativas, esto es, no estás listando registros de la tabla materias sino de la tabla correlativas, de manera que una primera aproximación sería:
Pero me parece que tú quieres especificar la materia en el where mediante su nombre y no su código. Ahí es donde entraría el join:
Y ya para que te presente los nombres correspondietes a las correlativas listadas en lugar de su código simplemente pones:
En fin, te lo estoy diciendo conforme lo voy pensando y no lo he comprobado pero puedes intentarlo. // Saludos |
Hola Roman:
En verdad te agradezco tu ayuda, en serio. Te comento, la consulta sql nº1: funciona, es decir, me devuelve los codigos de las materias que son correlativas con el codigo de materia ingresado. La segunda... tambien funciona de maravillas... pero la tercera... me devuelve como resultado el mismo nombre de la materia ingresada como parametro de busqueda repetida 2 veces... Como te comentaba en la pregunta inicial.. probé con la siguiente consulta sql...: esta es diferente a la primera...
Será que no soporta subconsultas anidadas interbase??? Desde ya muchas gracias por tu ayuda |
Hola Roman:
Encontre la falla en la consulta que habia ejecutado en un principio.... es decir, me habia equivocado en la subconsulta 1:
deberia haber puesto...
La consulta completa es:
Gracias por el envion que me diste para resolver el problema... Saludos cordiales desde Argentina |
No conozco interbase pero seguramente que sí acepta subconsultas anidadas. Sólo que en este caso no es necesario, nada más hay que hacer una modificación. Necesitas hacer un segundo join a la tabla materias:
// Saludos |
Gracias Roman por tu segunda respuesta...
parece que me adelante a tu contestacion... Saludos |
La franja horaria es GMT +2. Ahora son las 04:21:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi