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

Como optimizar mis resultados de un query donde consulto a dos tablas

Estas en el tema de Como optimizar mis resultados de un query donde consulto a dos tablas en el foro de Mysql en Foros del Web. Buenas noches compañeros, Yo tengo un dilema aqui que me gustaria la opinion de ustedes, es sobre la manera correcta de mostrar unos datos que ...
  #1 (permalink)  
Antiguo 10/02/2012, 21:48
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 7 meses
Puntos: 0
Como optimizar mis resultados de un query donde consulto a dos tablas

Buenas noches compañeros,

Yo tengo un dilema aqui que me gustaria la opinion de ustedes, es sobre la manera correcta de mostrar unos datos que bienen de la base de datos (MySql).

Yo estoy creando algo como un directorio de productos en donde tengo una tabla de "productos" en esta tabla guardo las generales de los productos asi como los "idCategoria" y "idSubcategoria" a la que pertenece dicho producto, pero en estos campos yo guardo es el "id" de dicha categoria/subcategoria porque yo tengo dos tablas llamadas categoria y subcategoria en donde cada una tiene sun campo "id" y "nombre".

Ahora bien, aqui es donde esta mi problemita, yo hago una consulta a la base de datos a la tabla "productos" para asi imprimir los productos que existen en esa tabla (los cuales espero que sean muchos), de esta manera:

Código PHP:
Ver original
  1. $ssql="select * from productos order by id desc";
  2. $rs = mysql_query($ssql);
  3.  
  4. while ($fila = mysql_fetch_object($rs)){
  5.  
  6. echo ('<div class="productBox">
  7.    <div class="productBoxTitulo">'.$fila->titulo.'</div>
  8.    <div class="productosDirOptions">
  9.    Categoria: '.$fila->idCategoria.'
  10.    Subcategoria: '.$fila->idSubcategoria.'
  11.    </div>
  12. </div>');
  13.  
  14. }

He tratado de acortar los datos del producto que imprimo para no canzarlos con tanto codigo.

Como veran lo mas importante aqui es que en los datos de Categoria y Subcategoria me imprime los IDs, por supuesto que es porque esto es lo que esta guardado en la tabla "productos" pero yo lo que quiero es saber como optimizo este codigo para que me imprima los nombres de las categorias y subcategorias que se encuentran en dichas tablas ?

Osea, porque si en cada recorrido del "while" hago una consulta a estas dos tablas para traer esos campos, no sería esto sobrecargar el codigo? osea si en una pagina imprimo 50 productos imaginense que por cada producto haga un query adicional con el ID para traer el nombre de la categoria y de la subcategoria, entonces esto seria 100 queries que hago a la DB en este recorrido del "while", digo, debe haber una forma optima de hacer esto, noh ?

Si no quedo claro, por favor haganmelo saber para dar mas detalles

Les agradesco un monton cualquier ayuda, Saludos!
  #2 (permalink)  
Antiguo 13/02/2012, 02:07
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Como optimizar mis resultados de un query donde consulto a dos tablas

No se trata de optimizar sino de hacer una select que traiga esos valores. Utilza las sentecias LEFT JOIN e INNER JOIN para obtener los nombres de tus tablas relacionadas. Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: query, resultados, select, sql, tabla, tablas, campos
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 17:11.