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

Ayuda con una consulta

Estas en el tema de Ayuda con una consulta en el foro de Mysql en Foros del Web. tabla news (idnoticia,type,title,...) tabla comentarios(idcomentario,idnoticia,...) tabla valoracion(idnoticia,username,valoracion) Cual seria el tipo de consulta para obtener el tipo, el titulo,el numero de comentarios y la valoracion ...
  #1 (permalink)  
Antiguo 15/09/2008, 16:37
Avatar de naitmeir  
Fecha de Ingreso: junio-2008
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Ayuda con una consulta

tabla news (idnoticia,type,title,...)

tabla comentarios(idcomentario,idnoticia,...)

tabla valoracion(idnoticia,username,valoracion)


Cual seria el tipo de consulta para obtener el tipo, el titulo,el numero de comentarios y la valoracion de total de los usarios correspondiente a la noticia con estas tablas... ?


S2

Última edición por naitmeir; 16/09/2008 a las 11:26 Razón: Mejorar la consulta
  #2 (permalink)  
Antiguo 16/09/2008, 18:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con una consulta

mm se me ocurre algo como select n.type, n.title, count(idcomentarios) as n_comentarios,v.valoracion from news n, comentarios c, valoracion v where n.idnoticia=c.idnoticia and n.idnoticia=v.idnoticia group by c.idnoticia
  #3 (permalink)  
Antiguo 16/09/2008, 19:14
Avatar de naitmeir  
Fecha de Ingreso: junio-2008
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Respuesta: Ayuda con una consulta

Gracias sethanarchy, adapte la noticia gracias a tu ayuda ...

Código PHP:
select n.id,n.typen.titlecount(c.id_noticia) as n_comentarios from noticias ncomentarios c where n.id=c.id_noticia group by c.id_noticia
... y los resultados era que solo mostraba las noticias que tenian comentario, sin seleccionar las filas que no tenian comentarios. Yo intente modifcar la consulta de esta forma para mostrar tambien las que no lo tenian

Código PHP:
select n.id,n.typen.titlecount(c.id_noticia) as n_comentarios from noticias ncomentarios c  group by c.id_noticia
y tampoco ...

Código PHP:
select n.id,n.typen.titlecount(c.id_noticia) as n_comentarios from noticias ncomentarios c where n.id=c.id_noticia and c.id_noticia not exists group by n.id 

, pero no funciono como esperaba y mostraba valores equivocados
  #4 (permalink)  
Antiguo 16/09/2008, 23:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con una consulta

Código sql:
Ver original
  1. SELECT n.id,n.TYPE, n.title, IFNULL(COUNT(c.id_noticia),'0') AS n_comentarios FROM noticias n,  LEFT JOIN comentarios c ON n.id=c.id_noticia GROUP BY n.id


Prueba con LEFT JOIN. He añadido ifnull para mostrar 0 cuando no haya comentarios de una noticia.

Última edición por jurena; 17/09/2008 a las 00:38
  #5 (permalink)  
Antiguo 17/09/2008, 03:46
Avatar de naitmeir  
Fecha de Ingreso: junio-2008
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 15 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Ayuda con una consulta

Código PHP:
select  n.id,n.typen.titleIFNULL(COUNT(c.id_noticia),'0') as n_comentarios from noticias n LEFT JOIN comentarios c ON n.id=c.id_noticia group by n.id order by id desc 
Esta es la buena, la unica diferencia es la coma que te olvidaste quitar, pero si esta me va al pelillo! Consultare las clausulas que has introducido por que no lo tengo muy claro por eso.

Gracias y un saludo
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 10:28.