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

¿En una sola consulta o varias?

Estas en el tema de ¿En una sola consulta o varias? en el foro de Mysql en Foros del Web. Tengo que hacer una consulta muy parecida a las que hace wordpress para mostrar en el indice los últimos diez artículos escritos, cada uno con ...
  #1 (permalink)  
Antiguo 22/03/2013, 07:30
 
Fecha de Ingreso: enero-2007
Mensajes: 27
Antigüedad: 17 años, 3 meses
Puntos: 1
Pregunta ¿En una sola consulta o varias?

Tengo que hacer una consulta muy parecida a las que hace wordpress para mostrar en el indice los últimos diez artículos escritos, cada uno con sus tags, y mi pregunta era, a ver de qué manera lo hacían para que fuera eficiente.

La solución más sencilla (y la única que se me ocurre) sería hacer una consulta que devolviera los 10 artículos, y dentro del bucle, para cada uno de ellos, consultar sus tags:
Código SQL:
Ver original
  1. SELECT * FROM posts ORDER BY p_id DESC
  2.  
  3. SELECT * FROM tags WHERE t_post=".$row["p_id"]." ORDER BY t_nombre ASC
Mi pregunta es, ¿no hay algun modo para evitar hacer 10 consultas a la tabla tags? ¿Hay alguna solución más eficiente?

Muchas gracias de antemano.

Última edición por gnzsoloyo; 22/03/2013 a las 08:01 Razón: Código de programacion no permitido en los foros de Bases de Datos
  #2 (permalink)  
Antiguo 22/03/2013, 07:59
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: ¿En una sola consulta o varias?

A nivel de SQL, sería :
Código MySQL:
Ver original
  1. select p.*, GROUP_CONCAT(T.tag) TAGS
  2. from posts p INNER JOIN tags t ON P.p_id = T.t_post
  3. WHERE P.p_id IN (SELECT p_id FROM posts ORDER BY p_id LIMIT 10)
  4. GROUP BY P.p_id
  5. ORDER BY P.p_id DESC;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/03/2013, 11:37
 
Fecha de Ingreso: enero-2007
Mensajes: 27
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: ¿En una sola consulta o varias?

Funcionó perfecto!! Mil gracias! :)
  #4 (permalink)  
Antiguo 22/03/2013, 11:56
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: ¿En una sola consulta o varias?

__________________
¿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: bd, tags, wordpress
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:06.