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

[SOLUCIONADO] Búsqueda compleja

Estas en el tema de Búsqueda compleja en el foro de Mysql en Foros del Web. Buenas estoy atascadísimo con una búsqueda que tengo que hacer, he hecho una red social programada por mi, ahora quiero hacer un timeline como facebook, ...
  #1 (permalink)  
Antiguo 01/01/2013, 12:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 27
Antigüedad: 15 años, 2 meses
Puntos: 0
Búsqueda compleja

Buenas estoy atascadísimo con una búsqueda que tengo que hacer, he hecho una red social programada por mi, ahora quiero hacer un timeline como facebook, y sacar los registros de los usuarios que sean mis amigos, ahí está mi gran problema, porque en el sql tengo que comprobar si son amigos y si lo son sacar sus registros.

La tabla de relaciones entre usuarios es

Cita:
solicitudamistad
sa_id int(11) (id autonum)
sa_solicitante int(11) (el usuario que solicita amistad)
sa_solicitado int(11) (el usuario a quien se solicita)

sa_estado int(11)
sa_cuando datetime
sa_verificado int(11)
La tabla de usuarios
Cita:
usuarios
usu_id int(11) (id autonum)
La tabla de la que quiero sacar registros sería por ejemplo la de fotos etiquetadas, en si la SQL que hago es mucho más larga y compleja pero con uno de estos ejemplos me valdria para solucionar el resto.

Código:
fotos_tags
ft_id     int(11) (autonum)
ft_foto     int(11)
ft_usuario     int(11) (aquí llevaria el id de mi amigo que es lo que interesa)
ft_quien_etiqueta     int(11)
ft_verificado     int(11)
ft_cuando     datetime
ft_x     int(11)
ft_y     int(11)
Lo que necesito es el id del tag de la foto, y el campo de cuando, pero eso ya lo hace bien, lo que necesito es la relacion entre amigos.

Yo estaba haciendo algo así pero no me funciona

Código MySQL:
Ver original
  1. SELECT DISTINCT fotos_tags.ft_id as ids, fotos_tags.ft_cuando as fch,'fotos'
  2. as tabla FROM fotos_tags,solicitudamistad
  3. INNER JOIN usuarios ON solicitudamistad.sa_solicitante = usuarios.usu_id
  4. LEFT JOIN usuarios u2 ON solicitudamistad.sa_solicitado = u2.usu_id
  5. WHERE sa_estado=2
  6. AND ((sa_solicitante=".$perfilid.") OR (sa_solicitado=".$perfilid."))
  7. AND usuarios.usu_id!=".$perfilid.")                                
  8. ORDER BY fch DESC, ids DESC";
Gracias de antemano!

Última edición por gnzsoloyo; 01/01/2013 a las 13:02 Razón: Codigo SQL mal etiquetado
  #2 (permalink)  
Antiguo 02/01/2013, 06:22
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Respuesta: Búsqueda compleja

¿Como sacarías los ids de los amigos de un usuario? Tendrías que añadir algo así:
WHERE usuario IN (consulta que saca ids de los amigos del usuario)

Te saldrán sólo los datos de los usuarios que estén en la subconsulta. Para que funcione tendrás que usar ALIAS de tabla en el usuarios de fuera y en el de dentro y compararlos con esos alias.

Etiquetas: compleja, relacion, busquedas
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 09:16.