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

No me sale una consulta simplre

Estas en el tema de No me sale una consulta simplre en el foro de Mysql en Foros del Web. Hola como estan? Estoy pensando como hacer una query y la verdad que no me sale. Les paso a explicar: - Tengo 2 tablas: Usuarios ...
  #1 (permalink)  
Antiguo 11/04/2013, 21:29
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
No me sale una consulta simplre

Hola como estan?

Estoy pensando como hacer una query y la verdad que no me sale. Les paso a explicar:

- Tengo 2 tablas: Usuarios y Favoritos.
- En la primera tengo todos los datos del usuario
- En la segunda los ID de cada usuario, si uno es "favorito" del otro.

Ahora quiero traer todos los datos de la tabla usuarios y, ademas, identificar cual de todos los usuarios traidos esta agregado como favorito de un usuario x.


Espero que se entiendo, cualquier cosa pongo un ejemplo.
Gracias.
  #2 (permalink)  
Antiguo 11/04/2013, 21:38
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: No me sale una consulta simplre

Postea lo que intentaste.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/04/2013, 21:50
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: No me sale una consulta simplre

Cita:
SELECT IF(fav.id_us_de = us.id_us,"si","no") as esFav, us.id_us, us.nick, us.img, us.is_online, us.nuevo, us.estado FROM usuarios AS us LEFT JOIN favoritos AS fav ON fav.id_us_yo="5" WHERE us.id_us <> "5"
Aclaraciones:

- El 5 es un id de usuario que quiere todos los usuarios y, de todos esos usuarios, a quien tiene agregado como favorito.

- El IF lo uso como identificador para saber si un usuario es parte de los favoritos del usuario 5 (por ejemplo)

- Los resultados de esta busqueda estan mal, ya que me devuelve todos los registros repetidos, unos con el resultado "si" en el campo "esFav" y los otros duplicados con el valor "no".


Alguna idea?
  #4 (permalink)  
Antiguo 12/04/2013, 07:29
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: No me sale una consulta simplre

Hola mark1829:

En la condición ON del LEFT JOIN debes colocar la condición de unión entre tus tablas usuarios y favoritos... tal como lo estás colocando se está realizando un PRODUCTO CARTESIANO entre tus tablas... la consulta debería quedar más o menos así:

Código MySQL:
Ver original
  1.   IF(fav.id_us_de = us.id_us,"si","no") esFav,
  2.   us.id_us,
  3.   us.nick,
  4.   us.img,
  5.   us.is_online,
  6.   us.nuevo,
  7.   us.estado
  8. FROM usuarios us
  9. LEFT JOIN favoritos AS fav ON us.id_us = fav.id_us_yo

Si esto no resuelve tu consulta, postea los datos de cada una de tus tablas para poder hacer algunas pruebas y ayudarte con la respuesta.

Saludos
Leo.
  #5 (permalink)  
Antiguo 12/04/2013, 11:38
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: No me sale una consulta simplre

Lo habia echo como decis leonardo_josue pero se me olvido de poner el JOIN en le comentario que puse mas arriba. Ya lo solucione agregando un campo mas en la tabla favoritos.

Etiquetas: tabla
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 13:56.