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

Muchos resultados en query con tablas relacionadas con campos SET

Estas en el tema de Muchos resultados en query con tablas relacionadas con campos SET en el foro de Bases de Datos General en Foros del Web. Bueno, espero poder expresarme de la forma mas correcta posible para que me entiendan... Supongamos, para hacer mas simple la explicacion, que tenemos 3 tablas: ...
  #1 (permalink)  
Antiguo 09/10/2003, 14:19
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 10 meses
Puntos: 0
Muchos resultados en query con tablas relacionadas con campos SET

Bueno, espero poder expresarme de la forma mas correcta posible para que me entiendan...
Supongamos, para hacer mas simple la explicacion, que tenemos 3 tablas:

tbl_miembros
tbl_relacion
tbl_busca

En tbl_miembros guardo diferentes datos acerca de los usuarios. Dos de esos datos son el tipo de ralacion que buscan y el sexo que buscan.
Ahora bien, en tbl_relacion hay varios tipos de relacion, y en tbl_busca hay varias opciones de sexo a elegir (por ej. mujer, hombre, pareja, etc.)
En la tbl_miembros tengo dos campos relacion y busca. Los dos son del tipo SET para poder guardar varios tipos de opciones de sus tablas correspondientes (los id de tbl_relacion y tbl_busca son potencia de 2).
Hasta aca esta todo perfecto, pero la complicacion aparece cuando quiero rescatar todos los datos del usuario. A la hora de saber la relacion y lo que buscan, no me sirve ver los ids, sino los nombres de ambos.
Una consulta podria ser:

SELECT tbl_relacion.relacion,tbl_busca.busca FROM tbl_relacion,tbl_busca,tbl_miembro WHERE tbl_miembro=1 AND
tbl_miembro.relacion&tbl_relacion.id AND tbl_miembro.busca&tbl_busca.id

Si el usuario tiene elegida una sola relacion y un solo sexo de busqueda, el resultado de este query seria de 1 sola fila. Pero que pasa cuando el usuario elige varias relaciones y varios sexos de busqueda? Aca la cantidad de filas resultantes es igual a cant.relacionesXcant.sexos
Y ese es el problema, tengo demasiados resultados, mas de los que quisiera. Si bien tengo los que necesito, me sobran muchos.

Un descenlace posible del anterior query podria ser:
RELACION - SEXO
amistad - hombre
amistad - mujer
casamiento -hombre
casamiento - mujer

Lo que me gustaria saber es si existe alguna forma de traer estos resultados en un orden que me sirva para poder implementar un LIMIT y descartar los demas resultados (es lo que se me ocurre, no se). Algo como recuperar las filas intercaladas de esta forma:

amistad - hombre
casamiento - mujer
amistad - mujer
casamiento - hombre

Cosa de que haga un LIMIT 2 y encuentre TODOS los datos que buscaba.
La verdad, ni yo creo que se pueda hacer algo por el estilo, pero igualmente se los queria consultar. Talvez haya otra solucion que ni se me ocurre. O talvez no y me tenga que conformar con traerme todas las filas, que a veces pueden llegar a ser mas de 30 para un mismo usuario.

Ustedes me diran (espero)

Gracias.

Última edición por zeus_bsas; 09/10/2003 a las 14:23
  #2 (permalink)  
Antiguo 10/10/2003, 15:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Creo que te podrían ayudar mejor en el foro de "Base de datos" ..

Muevo el mensaje hacia allá para ver si tienes más suerte.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 12/10/2003, 10:10
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 10 meses
Puntos: 0
Nadie que me pueda aclarar esta duda?
  #4 (permalink)  
Antiguo 13/10/2003, 04:04
 
Fecha de Ingreso: agosto-2003
Mensajes: 72
Antigüedad: 20 años, 8 meses
Puntos: 0
intenta hacer GROUP BY para agrupar las búsquedas por el criterio que te interese en cada momento, por ejemplo :

SELECT tbl_relacion.relacion,tbl_busca.busca FROM tbl_relacion,tbl_busca,tbl_miembro WHERE tbl_miembro=1 AND
tbl_miembro.relacion&tbl_relacion.id AND tbl_miembro.busca&tbl_busca.id GROUP BY tbl_relacion.id

Pero bueno, no se si he entendido lo que preguntas
  #5 (permalink)  
Antiguo 13/10/2003, 10:41
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 10 meses
Puntos: 0
No, ya lo he intentado, pero no es una solucion al problema
Por ahora me estoy conformando con traerme todos los registros, no parece haber otra solucion.
Gracias igual.
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 17:09.