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

Problema consulta

Estas en el tema de Problema consulta en el foro de Mysql en Foros del Web. Buenas gente miren tengo un problema con mi cinsulta mas bien no se como realizarla estoy creando un sistema de noticias y en la pagina ...
  #1 (permalink)  
Antiguo 26/05/2011, 00:02
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Problema consulta

Buenas gente

miren tengo un problema con mi cinsulta mas bien no se como realizarla

estoy creando un sistema de noticias y en la pagina principal (portada) quiero poner la última noticia de cada categoria entonces tengo la siguiente consulta:

Código PHP:
SELECT MAX(id),titulo,noticia,categoria FROM noticias group by categoria ORDER BY categoria
aca el problema si me arroja el ultimo id de la noticia por categoria pero solo eso solo el id y yo lo que necesito que tambien asi como me da el id me de todo los datos de la noticia o sea titulo, noticia, foto, categoria, etc


Saludos
  #2 (permalink)  
Antiguo 26/05/2011, 01:05
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: Problema consulta

Tienes que sacar el maximo ID y luego coger los datos de esa noticia, ahora coges los datos de TODAS las noticias y el ID máximo.

Una manera de hacerlo, aunque no creo que sea la más eficiente, es esta

Código SQL:
Ver original
  1. SELECT titulo,noticia,categoria
  2. FROM noticias
  3. WHERE ID IN (
  4. SELECT MAX(id)
  5. FROM noticias
  6. GROUP BY categoria
  7. )
  8. ORDER BY categoria;
  #3 (permalink)  
Antiguo 26/05/2011, 01:20
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

Hola @Heimish2000 muchas gracias por tu respuesta:)

por que dices que no es la mas eficiente? ay mas formas? o cual es el problema?


Saludos
  #4 (permalink)  
Antiguo 26/05/2011, 01:31
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: Problema consulta

Lo digo porque tener subconsultas anidadas no es muy eficiente, pero bueno, hay veces que no hay más remedio.

No se si hay otra forma mejor de hacerlo, si la supiera te la hubiese puesto :D
  #5 (permalink)  
Antiguo 26/05/2011, 01:43
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

Ooo pues probando y te cuento :D

Gracias por la ayuda (Y)
  #6 (permalink)  
Antiguo 26/05/2011, 02:09
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

funciona me muestra los datos pero ahora que veo la base de datos en las noticias meto fotos y esas las guardo en otra tabla como seria hacer eso mismo pero tambien obteniendo la ultima foto q se le agrego a esa noticia? para que sea la imagen de portada o muestra

tabla: fotos campos: id,id_noticia,foto
que lio, no cacho como hacerlo

Saludos
  #7 (permalink)  
Antiguo 26/05/2011, 02:27
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: Problema consulta

Pues uniendo las dos tablas con un INNER JOIN y cogiendo la MAX(id_foto)
  #8 (permalink)  
Antiguo 26/05/2011, 08:36
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

No me sale T_T no se que hacer con el MAX para la foto
Código MySQL:
Ver original
  1. SELECT noticias.titulo,noticias.noticia,noticias.categoria,foto.id_noticia,foto.foto
  2. FROM noticias n INNER JOIN fotos f ON n.id = f.id_noticias
  3. WHERE ID IN (
  4. FROM noticias
  5. GROUP BY categoria
  6. )
  7. ORDER BY categoria;

Quien me hecha una mano


Saludos
  #9 (permalink)  
Antiguo 26/05/2011, 17:06
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

alguien sabe como podria hacer eso?

Gracias de antemano
  #10 (permalink)  
Antiguo 26/05/2011, 18:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema consulta

Tal vez algo así:
Código MySQL:
Ver original
  1.     id_noticia,
  2.     titulo,
  3.     noticia,
  4.     categoria,
  5.     foto
  6.     (SELECT
  7.         n.titulo,
  8.         n.noticia,
  9.         n.categoria,
  10.         f.id_noticia,
  11.         f.foto
  12.     FROM noticias n INNER JOIN fotos f ON n.id = f.id_noticias
  13.     ORDER BY n.categoria ASC, n.id DESC) T1
  14. GROUP BY categoria;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 26/05/2011, 18:42
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

Hola @gnzsoloyo muchas gracias por molestarse en ayudarme..

Solo unas preguntas ese T1 que hace?

Necesito que la consulta me imprima en pantalla la ultima noticia de cada categoria y con ello todos los datos eso ya lo he logrado con la ayuda de mi amigo @Heimish2000 el problema es que uso 2 tablas NOTICIAS Y FOTOS asi que al momento de obtener la ultima noticia de cada categoria tambien me tiene que jalar la ultima foto o una de las fotos que tenga esa noticia para ponerla como imagen de muestra.

y es lo que no cacho como hacer eso
  #12 (permalink)  
Antiguo 26/05/2011, 19:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema consulta

Cita:
Solo unas preguntas ese T1 que hace?
Todos preguntan lo mismo siempre...
Es el alias de la tabla derivada.

Es una regla general de todos los DBMS que toda tabla derivada (las que surgen de una subconsulta en el FROM) obligatoriamente debe llevar alias.
Cita:
Necesito que la consulta me imprima en pantalla la ultima noticia de cada categoria y con ello todos los datos eso ya lo he logrado con la ayuda de mi amigo @Heimish2000 el problema es que uso 2 tablas NOTICIAS Y FOTOS asi que al momento de obtener la ultima noticia de cada categoria tambien me tiene que jalar la ultima foto o una de las fotos que tenga esa noticia para ponerla como imagen de muestra.
Ajá... ¿Y has probado lo que te estoy posteando? Por si no lo has notado estoy invocando las dos tablas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 26/05/2011, 19:42
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Problema consulta

Muchas gracias gnzsoloyo no habia visto bien la consulta y si todo bien aprendido lo del t1 :) es que como no le vi el MAX () :P pero ahora le vi el ORDER BY n.categoria ASC, n.id DESC :P


Saludos y gracias ;)
  #14 (permalink)  
Antiguo 26/05/2011, 19:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema consulta

Es otra forma de lograr lo mismo. Me pareció menos complicada de entender.

__________________
¿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: Ninguno
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:56.