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

Obtener resultados en una sola consulta.

Estas en el tema de Obtener resultados en una sola consulta. en el foro de Mysql en Foros del Web. Que tal amigos, muy buen dia. Tengo una duda existencial que a mi me parece mas grande de lo que probablemente a ustedes les parezca ...
  #1 (permalink)  
Antiguo 26/07/2014, 15:06
 
Fecha de Ingreso: febrero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 1
Pregunta Obtener resultados en una sola consulta.

Que tal amigos, muy buen dia.

Tengo una duda existencial que a mi me parece mas grande de lo que probablemente a ustedes les parezca sencillo.

Quiero obtener en una sola consulta los valores de dos tablas.
La primera "usuarios" contendria la siguiente estructura (Como ejemplo)

|_ id _ |_ nombre _ |
|__1__|__gabriel__|

La segunda "propiedades":
|__id__|_user_|_propiety_|
...
|_ 33__|__1__|___Gris___|
|_ 34__|__1__|___corto__|

...

Segun he aprendido la consulta seria algo como esto:
Código MySQL:
Ver original
  1. SELECT * FROM `usuarios`
  2. right JOIN `propiedades` ON `propiedades`.`user` = `usuarios`.`id` AND `usuarios`.`id` = 1

El problema con esto es que me retorna el usuario dos o mas veces dependiendo del numero de coincidencias que encuentre en "propiedades".

La pregunta es:
¿Hay forma de que desde una sola consulta mysql, o php se puedan obtener los datos de la siguiente manera?:

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

¿O será necesario que utilice una consulta extra para obtener las propiedades de X usuario?

Última edición por gnzsoloyo; 27/07/2014 a las 06:55
  #2 (permalink)  
Antiguo 27/07/2014, 06:57
Avatar de 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: Obtener resultados en una sola consulta.

Cita:
El problema con esto es que me retorna el usuario dos o mas veces dependiendo del numero de coincidencias que encuentre en "propiedades".
Es el comportamiento normal, esperado y correcto de un JOIN.
Lo que quieres hacer se hace programáticamente, no en SQL.

El JOIN devuelve siempre, en una relación 1:N, N veces el registro vinculado N veces con otro. Siempre.

Lo que tu quieres hacer, que aparezca sólo la primera vez, y luego el "reporte" del resto de los datos, es algo que se resuelve en la programación de la aplicación.

Y no, no es conveniente que hagas dos consultas. Es ineficiente y genera baja performance. Lo conveniente es que programes adecuadamente para mosrtar las cosas como las deseas... cosa en que en el foro d e PHP te pueden ayudar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: php, relacionar, tablas
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:17.