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

Cual es la mejor forma de realizar esta consulta

Estas en el tema de Cual es la mejor forma de realizar esta consulta en el foro de Mysql en Foros del Web. Hola cual es la mejor forma paa realizar esta consulta: tengo una web de noticias y las noticias estan divididas en categorias y subcategorias, por ...
  #1 (permalink)  
Antiguo 27/09/2011, 17:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 7 meses
Puntos: 10
Cual es la mejor forma de realizar esta consulta

Hola

cual es la mejor forma paa realizar esta consulta:

tengo una web de noticias y las noticias estan divididas en categorias y subcategorias, por ejemplo:

en una tabla donde tengo la lista de las categorias y subcategorias estan:

deportes (niv1)
futbol(niv2)
tenis(niv2)
basketball(niv2)

cultura(niv1)
musica(niv2)
pintura(niv2)

y en otra tabla tengo todas las noticias con estos campos:

nombre
noticia
subcategoria


Ahora bien, cual es la mejor forma para obtener todas las noticias de "deportes"??
tendria que hacer primero una consulta en la tabla de las categorias para obtener las subcategorias, paa despues hacer otra consulta ya en la tabla de las noticias ?

o de que otra forma podria hacerlo mejor y mas eficientemente?
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador
  #2 (permalink)  
Antiguo 28/09/2011, 06:41
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Cual es la mejor forma de realizar esta consulta

Podrías intentar con esto:

Código MySQL:
Ver original
  1. SELECT n.nombre,n.noticia
  2. FROM tabla_noticias n
  3.     n.categoria = {id_deportes}
  4. SELECT n.nombre,n.noticia
  5. FROM tabla_noticias n
  6. JOIN tabla_categorias c
  7.     ON c.id_categoria = n.id_categoria
  8.     c.categoria_padre = {id_deportes}

Lo que hace es primero traer todas las noticias de la categoría deportes y luego le hace una UNION con una consulta que trae las noticias de las subcategorias que tengan como categoria_padre a la categoría deportes

Espero sirva :S

Lo otro podría ser:

Código MySQL:
Ver original
  1. SELECT n.nombre,n.noticia
  2. FROM tabla_noticias n
  3. JOIN tabla_categorias c
  4.     ON c.id_categoria = n.id_categoria
  5.     c.id_categoria = {id_deportes} OR c.categoria_padre = {id_deportes}


Supongo que con cualquiera de las 2 debería funcionar

saludos

Última edición por Ribon; 28/09/2011 a las 11:37

Etiquetas: campos, tabla, formulario
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 12:42.