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

ayuda con select con 3 tablas.

Estas en el tema de ayuda con select con 3 tablas. en el foro de Mysql en Foros del Web. hola quiero hacer una consulta con 3 tablas. propiedades manzanas propiedadesXmanzanas esta ultima tabla tiene los id de las 2 primeras. la consulta que quiero ...
  #1 (permalink)  
Antiguo 27/10/2010, 14:54
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
ayuda con select con 3 tablas.

hola quiero hacer una consulta con 3 tablas.

propiedades

manzanas

propiedadesXmanzanas


esta ultima tabla tiene los id de las 2 primeras.

la consulta que quiero hacer es traer todo de propiedades que tengan relacion con el id de manzana 1?


saludos
  #2 (permalink)  
Antiguo 27/10/2010, 15:12
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: ayuda con select con 3 tablas.

Buenas tardes RIVERMILLOS

Me gustaría saber si al menos intentaste hacer la consulta que quieres... Pues tu post no menciona que hayas tenido algún problema, error o resultado no esperado. Ojo con eso.

No mencionas cuál es el nombre de tus campos indice para el ejemplo asumo que son idPropiedad (para la tabla de propiedades) e idManzana (para la tabla de manzanas)

Intenta con esto:

Código MySQL:
Ver original
  1. SELECT  P.* FROM propiedadesXmanzanas PXM
  2. INNER JOIN propiedades P
  3. ON P.idPropiedad = PXM.idPropiedad
  4. INNER JOIN manzanas M
  5. ON M.idManzana = PXM.idManzana
  6. WHERE PXM.idManzana = 1

Saludos.
Leo.
  #3 (permalink)  
Antiguo 27/10/2010, 15:15
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: ayuda con select con 3 tablas.

Pues yo habia intentado esta


Código PHP:
SELECT  FROM propiedades,manzanasXpropiedades,manzanas WHERE manzanasXpropiedades.idmanzanau=1
pero me sales los registro de las tres tablas y no se si esta bien?


saludos
  #4 (permalink)  
Antiguo 28/10/2010, 09:27
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: ayuda con select con 3 tablas.

Hola de nuevo RIVERMILLOS,

No sé por que nos preguntas a nosotros si la consulta que pones está bien o no... ¿qué es lo que necesitas?, si la consulta cumple con lo que quieres obtener pues entonces esta correcta y viceversa.

Con respecto a la consulta que pones, En el from estás tomando las tres tablas

Código SQL:
Ver original
  1. FROM propiedades, manzanasXpropiedades, manzanas

Pero en la condición WHERE no estás haciendo la unión entre las tablas, lo que quiere decir que se va a realizar el producto cartesiano entre los registros. En lo particular siempre he preferido hacer las uniones mediante JOIN, debido a que mejora sustancialmente el rendimiento.

Al poner Select * estás indicando que te traiga todos los campos de todas las tablas, esto me parece un desperdicio, ya que por ejemplo las llaves se encontrarán duplicadas, es mejor que hagas la lista de los campos que necesitas en lugar de utilizar el *

Y finalmente, no haces ningún comentario sobre la consulta que publiqué, por lo que no sé si te sirvió o tiene algún error. Ojo con eso.

Saludos
Leo.
  #5 (permalink)  
Antiguo 28/10/2010, 09:45
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: ayuda con select con 3 tablas.

Código MySQL:
Ver original
  1. FROM propiedades p, manzanas m, propiedadesxmanzanas pxm
  2. p.idpropiedad = pxm.idpropiedad AND
  3. m.idmanzana = pxm.idmanzana;
  #6 (permalink)  
Antiguo 29/10/2010, 07:24
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: ayuda con select con 3 tablas.

Hola las dos consultas me funcionaron , pero si se soluciono con comentando lo que te digo, muchas gracias por su ayuda, voy a tomar tu recomendacion de usar JOIN en todo lado dicen que es mas rapido.


saludos

Etiquetas: select, 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 13:49.