Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/11/2012, 04:28
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como leer varias filas en esta consulta sql?

Cita:
el mysql me dice que regresa mas de una linea.. y pues precisamente eso quiero, pero quiero que me permita mostrar esos datos...
Es que estás haciendo completamente mal la cosa, y tampoco estás entendiendo el mensaje.

Para obtener la lista de usuarios que figuran como amigos necesitas hacer un JOIN, o bien hacer la misma consulta, pero de otro modo.
Primer caso:
Código MySQL:
Ver original
  1. SELECT U.*
  2. FROM usuarios U INNER JOIN amigos A ON U.id= A.idamigo  
  3. WHERE A.idusuario=281

Lo que no estás entendiendo es que no puedes usar el operador "=" para el caso de buscar un valor en el resultado de una subconsulta, si esa subconsulta devuelve más de una línea. El "=" espera que existan dos y sólo dos valores en ese caso (A = B), y no puedes compararlo con un conjunto. Para eso existen otros operadores.
Segundo caso:
Código MySQL:
Ver original
  1. FROM usuarios
  2. WHERE id IN(SELECT idamigo  FROM amigos WHERE amigos.idusuario=281)

¿Se entiende la diferencia?

¿Te acuerdas de la teoría de conjuntos?
Si haces un poco de memoria, en el álgebra de conjuntos (y en toda la matemática) sucede lo mismo: No puedes comparar un valor contra un conjunto, porque son entidades lógicas diferentes.
Bueno los principios aplicados son los mismos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)