Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2011, 17:39
Avatar de juanito1712
juanito1712
 
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años, 6 meses
Puntos: 66
necesito un empujon en una consulta

primero paso a explicar el contenido

tengo las siguientes tablas

usuarios:
usuarios_id
usuarios_nombre

relaciones:
amistad_id
amistad_us1
amistad_us2

las realaciones svincularian 2 usuarios, en una columna la id de un usuario y en otra la id del otro, podria terminar con algo asi

4|1
1|3
1|5
5|1
6|1

(con muchos mas entremedias pero nos centraremos en las relaciones del 1 que son las que importan)

ahora resulta que quiero obtener los nombres de todos los usuarios que mantengan relacion con 1

probando esta consulta
SELECT a.*,u.usuarios_id,u.usuarios_nombre
FROM amistades a INNER JOIN usuarios u
ON a.amistades_us1=u.usuarios_id
WHERE amistades_us1=1 or amistades_us2=1

obtengo mas o menos lo que deseo solo que se muestra el nombre del usuario que esté en la columna us1 siempre

si modifico la consulta asi


SELECT a.*,u.usuarios_id,u.usuarios_nombre
FROM amistades a INNER JOIN usuarios u
ON a.amistades_us1=u.usuarios_id or a.amistades_us2=u.usuarios_id
WHERE amistades_us1=1 or amistades_us2=1

me muestra cada pareja dos veces la primera vez muestra siempre el mobre del usuario1 (que no us1) y el segundo siempre es el nombre del relacionado y si soy sincero no entiendo porqué.

¿ Algún alma caritativa sabría explicarme que estoy consultando realmente en la 2ª consulta?