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

Consulta comprarando varios resultados.

Estas en el tema de Consulta comprarando varios resultados. en el foro de Mysql en Foros del Web. Hola foreros, tengo un problemita con una consulta. les explico: tengo 2 tablas: 1.- usuarios con campos (id, nombre) 2.- amigos con campos (id, id_usuario, ...
  #1 (permalink)  
Antiguo 12/01/2011, 13:37
Avatar de JOCKERYN  
Fecha de Ingreso: diciembre-2006
Ubicación: guatemala
Mensajes: 113
Antigüedad: 17 años, 4 meses
Puntos: 1
De acuerdo Consulta comprarando varios resultados.

Hola foreros,
tengo un problemita con una consulta. les explico:
tengo 2 tablas:
1.- usuarios con campos (id, nombre)
2.- amigos con campos (id, id_usuario, id_amigo)

nececito listar todos los usuarios que no son mis amigos y claro diferente a mi id en una sola consulta.
Gracias por su ayuda, si no me explico bien me avisan, de antemano gracias.
__________________
El poder del saber esta en el poder preguntar.
yo
  #2 (permalink)  
Antiguo 12/01/2011, 15:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta comprarando varios resultados.

Buenas tardes compañer@.

En tu post no mencionas qué tipo de problema es el que tienes, es decir tal pareciera que ni siquiera hiciste el intento por resolver este problema y quisieras que otro lo resuelva por ti, este por lo menos es mi punto te vista.

La consulta desde mi punto de vista no es complicada, simplemente tienes que utilizar una sentencia NOT IN o NOT EXISTS y una pequeña subconsulta para filtrar aquellos elementos que no son tus amigos. expresado en palabras sería algo como esto:

-Para traer a las personas que son tus amigos

"Seleccionar de la tabla amigos todos aquellos registros que en su campo idUsuario sea igual a mi idUsuario"

-Para resolver tu problema.
"Seleccionar de la tabla de usuarios todos aquellos registros cuyo idUsuario NO ESTÉN EN la lista de personas que son mis amigos (aquí utilizas la sentencia anterior) y excluyendo a mi idUsuario"

Si aun con esto no puedes resolver tu problema muéstranos algún avance que lleves en tu consulta y con gusto te tratamos de ayudar a afinarla.

Saludos
Leo.
  #3 (permalink)  
Antiguo 12/01/2011, 16:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta comprarando varios resultados.

imaginemos que mi id es el 5.

SELECT id, nombre FROM usuarios LEFT JOIN (SELECT id_amigo FROM amigos where id_usuario = '5') t1 ON usuarios.id = t1.id_amigo WHERE id_amigo IS NULL

también asi:
SELECT id, nombre FROM usuarios WHERE id NOT IN (SELECT id_amigo FROM amigos where id_usuario = '5')


si tienes que hacerlo con el nombre te costará algún autojoin
  #4 (permalink)  
Antiguo 12/01/2011, 16:26
Avatar de JOCKERYN  
Fecha de Ingreso: diciembre-2006
Ubicación: guatemala
Mensajes: 113
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Consulta comprarando varios resultados.

que tal amigos, gracias por su respuesta, si me imagino que formule mal mi pregunta, si ya habia probado con consultas, varias, mando un ejemplo d emi consulta

SELECT distinct u_am.*, u.nombre_completo, u.apellido, u.fecha_registro, u.id_usuario, u.genero, f.foto
FROM jb_usuarios_amigos u_am, jb_usuarios u, jb_usuarios_fotos f
WHERE u_am.id_usuario = 1
AND u_am.id_amigo = f.id_usuario
AND u.id_usuario <> u_am.id_amigo
AND f.principal = 1
AND u.id_usuario = u_am.id_amigo
AND u.nombre_completo like "%criterio%"

esta es mi consulta, no la queria poner asi pero mejor la explico bien. voy a probar con sus ejemplos y aviso, gracias.
__________________
El poder del saber esta en el poder preguntar.
yo

Etiquetas: resultados
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 12:07.