MySQL - CONSULTA COUNT GROUP BY

 
Vista:
sin imagen de perfil

CONSULTA COUNT GROUP BY

Publicado por Diego (10 intervenciones) el 10/06/2015 18:40:29
Buena tarde, tengo la siguiente situación


tabla noticias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| idnew          | varchar(50)  | NO   | PRI | NULL    |       |
| titulonew      | varchar(500) | NO   |     | NULL    |       |
| rutanew        | varchar(500) | NO   |     | NULL    |       |
| fechanew       | varchar(20)  | NO   |     | NULL    |       |
| horanew        | varchar(20)  | NO   |     | NULL    |       |
| utcnew         | varchar(15)  | NO   |     | NULL    |       |
| wordkeynew     | varchar(200) | NO   |     | NULL    |       |
| directorio     | varchar(10)  | NO   |     | NULL    |       |
| descripcionnew | varchar(500) | NO   |     | NULL    |       |
| countvisitas   | int(11)      | NO   |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+


tabla relacion entre noticias y comentarios


1
2
3
4
5
6
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| idnew   | varchar(50) | NO   | MUL | NULL    |       |
| idcmnew | varchar(20) | NO   | MUL | NULL    |       |
+---------+-------------+------+-----+---------+-------+


la consulta me debe traer las noticias con el numero de comentarios que tiene esta, tengo lo siguiente

1
select A.idnew,A.titulonew,A.fechanew,A.descripcionnew,A.countvisitas, count(B.idnew) from tbnews A,tbnwscmnws B where A.idnew = B.idnew group by B.idnew order by A.utcnew asc limit 0,5;

esta sentencia me solo las noticias que tienen comentarios es decir que las noticias que no tienen comentarios no me las trae y las necesito todoas asi no tengan comentarios, gracias por su atencion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

CONSULTA COUNT GROUP BY

Publicado por leonardo_josue (414 intervenciones) el 10/06/2015 20:02:32
Hola Diego:

al hacer joins explicitos, es decir, listando las tablas en el FROM y colocando las condiciones en el WHERE, es el equivalente al INNER JOIN, y por lo tanto es MANDATORIO que existan elementos en ambas tablas para que se muestren los resultados.

1
2
3
4
5
6
7
...
FROM tabla1, tabla2, WHERE tabla1.campo = tabla2.campo
...
 
...
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
...

En tu caso, lo que necesitas es hacer un LEFT o un RIGHT JOIN... si tienes dudas en cuanto a cómo funciona el LEFT JOIN, pregúntale a santa WIKIPEDIA o a SAN GOOGLE... ellos generalmente tienen la respuesta a todo.


Saludos
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

CONSULTA COUNT GROUP BY

Publicado por Diego (10 intervenciones) el 10/06/2015 21:42:11
Hola leonardo, muchas gracias por tu respuesta ya lo solucione =D

1
select A.idnew,A.titulonew,A.fechanew,A.descripcionnew,A.countvisitas,count(B.idnew) from tbnews A left join tbnwscmnws B on A.idnew = B.idnew group by A.idnew order by A.utcnew desc;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar