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

¿ Seleccionar datos con relación entre tablas ?

Estas en el tema de ¿ Seleccionar datos con relación entre tablas ? en el foro de Mysql en Foros del Web. Hola a todos, Me gustaría saber que método es el más rápido o recomendable para realizar una consulta en Mysql con tablas relacionadas: En este ...
  #1 (permalink)  
Antiguo 03/04/2012, 04:47
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
¿ Seleccionar datos con relación entre tablas ?

Hola a todos,

Me gustaría saber que método es el más rápido o recomendable para realizar una consulta en Mysql con tablas relacionadas:

En este ejemplo, se trata de saber a que provincia pertenece una población.

1)
SELECT poblaciones.*, provincias.* FROM poblaciones, provincias
WHERE poblaciones.provincia_id = provincias.id_provincia
AND poblaciones.id_poblacion = 34

2)
SELECT poblaciones.*, provincias.* FROM poblaciones, provincias
WHERE poblaciones.id_poblacion = 34
AND poblaciones.provincia_id = provincias.id_provincia


¡Un saludo y gracias!
  #2 (permalink)  
Antiguo 03/04/2012, 11:31
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: ¿ Seleccionar datos con relación entre tablas ?

Pienso que es lo mismo, puedes usar la funcion benchmark para ver cual consulta tarda menos y otra cosa trata de evitar el comodin "*"
  #3 (permalink)  
Antiguo 03/04/2012, 15:08
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: ¿ Seleccionar datos con relación entre tablas ?

Hola davidj:

También sería conveniente utilizar JOIN's en lugar de hacer las uniones explícitas... aunque el resultado es el mismo el performance es mejor utilizando JOIN's...

Código MySQL:
Ver original
  1. SELECT poblaciones.*, provincias.*
  2. FROM poblaciones
  3. INNER JOIN provincias ON poblaciones.provincia_id = provincias.id_provinci
  4. WHERE poblaciones.id_poblacion = 34

Y como apunta correctamente hackjose, evita utilizar el comodín *, aun si necesitas todos los campos de tu tabla... si fuera el caso es preferible listar cada campo en lugar de poner *. Finalmente recuerda definir índices en tus tablas... este es el punto que más puede afectar el rendimiento se una consulta.

Saludos
Leo
  #4 (permalink)  
Antiguo 04/04/2012, 01:22
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ Seleccionar datos con relación entre tablas ?

Gracias por vuestros comentarios, le daré un vistazo

Etiquetas: select, sql, tabla, 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 14:58.