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

Buscar en el Resultado de una Consulta

Estas en el tema de Buscar en el Resultado de una Consulta en el foro de Bases de Datos General en Foros del Web. He estado consultando la documentación de mysql y no doy con ninguna unción que me permita "buscar" un elemento en el resultado de una consulta ...
  #1 (permalink)  
Antiguo 24/01/2005, 08:09
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 19 años, 6 meses
Puntos: 0
Busqueda Buscar en el Resultado de una Consulta

He estado consultando la documentación de mysql y no doy con ninguna unción que me permita "buscar" un elemento en el resultado de una consulta (mysql_query(...)), por ejemplo por su id???

Se puede hacer o tendría que hacer una cosnulta de búsqueda para cada uno de los elementos?

Gracias

Última edición por redlor; 01/02/2005 a las 17:06
  #2 (permalink)  
Antiguo 25/01/2005, 07:53
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
¿por qué no afinas más las condiciones de la búsqueda?. Si quieres buscar un elemento dentro de una consulta es porque sabes como encontrarlo: pues haz una consulta más afinada, porque no es posible hacer una búsqueda de otra búsqueda salvo que ese resultado lo metas en una tabla temporal.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 30/01/2005, 19:32
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 19 años, 6 meses
Puntos: 0
Función que permita buscar un elemeno en el resultado de una query..

Hola, gracias por tu respuesta y perodona porque no la pude contestar hasta hoy. Te explico mi duda: Tengo una lista de asignaturas, que he sacado de la base de datos mediante una query del estilo (SELECT * FROM Asigna). Quiero representarlas en una tabla, pero además quiero diferenciar, poniendo por ejemplo en negrita, las asociadas a un determinado usuario.

Cómo recuperar de las asignaturas resultado de la consulta anterior las que cumplan la condición de que estén asociadas a un usuario?? Tendría que hacer para cada una de ellas una consulta y comprobar que estén asociados al mismo?? Es decir, recupero las asignaturas, por ejemplo con el identificador, y realizao una consulta del tipo (SELECT * FROM Asigna WHERE IdAsigna='...' AND IdUsuario='...') tantas veces como asignaturas haya??

Ésto sería bastante ineficiente, y es por eso por lo que he pensado que a lo mejor mysql incorpora alguna función que permita buscar un elemeno en el resultado de una query.

Espero haber explicado mi problema con claridad. Gracias de antemano, salu2.

Última edición por redlor; 30/01/2005 a las 19:37
  #4 (permalink)  
Antiguo 30/01/2005, 21:42
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 19 años, 8 meses
Puntos: 2
Hola que tal!!!

a ver si mi idea te sirve!!!!

Como no conosco ese tipo de funciones que dices depronto las hay, pos yo haria la consulta asi como la haces "SELECT * FROM materias"

Y despues en donde yo estoy haciendo la interfaz, resaltaria los resultados segun el profesor que las tenga, ¿¿me comprendes??

espero que te sirva mi ideita
  #5 (permalink)  
Antiguo 30/01/2005, 21:51
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
al hacer la busqueda: (SELECT * FROM Asigna) estas trayendo todos los datos de la tabla incluido el usuario. entonces lo que tenes que hacer es cuando haces el recorrido para crear la tabla de presentacion le pones un condicional que que diga que si el IDusuario es tal haga tal cosa... por lo que me parece que seria mejor que preguntes en el foro del lenguaje que estas usando.
__________________
oohh... quisiera ser godines!!!
  #6 (permalink)  
Antiguo 31/01/2005, 04:43
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 19 años, 6 meses
Puntos: 0
Ok agradezco vuestra colaboración, lo que pasa es que creo que no he dado los suficientes datos como para que hayais entendido mi problema. Ya por curiosidad os muestro las tablas:

CREATE TABLE asigna(
IdAsigna int(11) NOT NULL auto_increment,
NombreAsigna varchar(100) NOT NULL default '',
FechaAltaAsigna datetime default NULL,
PRIMARY KEY (IdAsigna)
) ;

CREATE TABLE usuarios(
IdUsuario int(11) NOT NULL auto_increment,
Login varchar(32) NOT NULL default '',
Password varchar(32) NOT NULL default '',
PRIMARY KEY (IdUsuario)
) ;

CREATE TABLE asigna_usuario(
IdAsignaUsuario int(11) NOT NULL auto_increment,
IdAsigna int(11) NOT NULL ,
IdUsuario int(11) NOT NULL,
PRIMARY KEY (IdAsignaUsuario)
) ;

Como podeís comprobar me valgo de una tabla auxiliar para guardar las relaciones asigna usuario (una asigna relacionada cn más de un usuario y viceverasa). Si me traigo las asignaturas no tengo ninguna condición con la que filtrar por usuario. Tampoco me vale hacer un join con la tabla asigna-usuario, ya que me repetiría asignaturas en un recorrido (mostraría todas las combinaciones asigna usuario).

Es por eso por lo que busco una función mysql que permita: Dado el conjunto de asignaturas (global) y el de asignaturas de un usuario, yo recorra las asignaturas pudiendo comprobar para cada una de ellas si está contenida en el conjunto de las del usuario.

Gracias, chao
  #7 (permalink)  
Antiguo 31/01/2005, 11:30
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
porque no haces la consulta uniendo las 3 tablas y despues con GROUP BY agrupas todo por las asignaturas asi solo te va a mostrar una vez cada asignatura...

PD: podrias poner un pequeño ejempolo de como queres que quede la tabla final?
__________________
oohh... quisiera ser godines!!!
  #8 (permalink)  
Antiguo 01/02/2005, 16:51
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 19 años, 6 meses
Puntos: 0
...

Si uno las tres tablas como me has dicho sólo saldrían las asignaturas que pertenecen al usuario, no es así?? Cómo las podría unir de forma que salieran tanto las asignas que tienen usuario como las que no??

PD: A ver, incluyo un ejemplo. Suppongamos que tenemos
- 3 Asignaturas: asig1, asig2, asig3
- 2 usuarios: usu1, usu2
El usu1 tiene asignadas las asignaturas asig2, asig3
- 2 relaciones asigna_usuario: (asig2, usu1) y (asig3, usu1)
Imaginen que quiero sacar un listado con todas las asignaturas y además señalar las del usu1 en negrita. Total, al final quiero:
  • asig1
  • asig2
  • asig3

Creo que esto no hay forma de hacerlo con una sóla consulta, por lo que había pensado en, una vez tenga en el resultado de una query todas las asignaturas del usuario, recorrer cada asignatura (del listado total) buscando si estás contenido en el conjunto anterior.
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




La zona horaria es GMT -6. Ahora son las 05:40.