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

ayuda con una query : COUNT, GROUP BY

Estas en el tema de ayuda con una query : COUNT, GROUP BY en el foro de Mysql en Foros del Web. Hola a todos, A ver si me podéis ayudar a plantear la siguente query: Tengo dos tablas: - personas (id_persona, nombre) - coches (id_coche, modelo, ...
  #1 (permalink)  
Antiguo 14/11/2007, 14:00
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
ayuda con una query : COUNT, GROUP BY

Hola a todos,

A ver si me podéis ayudar a plantear la siguente query:

Tengo dos tablas:

- personas (id_persona, nombre)
- coches (id_coche, modelo, id_propietario).

quiero hacer una consulta que me dé una relación del número de coches de cada persona. Había pensado la siguiente query:

Código:
select id_persona, COUNT(*) from personas, coches WHERE id_persona=id_propietario GROUP BY id_persona;
el problema es que cuando un id_persona no aparece en la tabla coches (porque no tiene ningún coche) esta query no me vale porque omite de la relacion las personas sin conches....

alguna sugerencia?

saludos.
  #2 (permalink)  
Antiguo 15/11/2007, 12:38
Avatar de m4xp0wer  
Fecha de Ingreso: septiembre-2007
Mensajes: 66
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: ayuda con una query : COUNT, GROUP BY

Tienes que hacer un left join:
select id_persona,count(*) as total from personas left join coches on (id_persona=id_propietario) group by id_persona
  #3 (permalink)  
Antiguo 15/11/2007, 14:00
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: ayuda con una query : COUNT, GROUP BY

Muchas gracias!!

Me ha funcionado perfectamente.

Saludos.
  #4 (permalink)  
Antiguo 22/05/2008, 03:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Re: ayuda con una query : COUNT, GROUP BY

Cita:
Iniciado por m4xp0wer Ver Mensaje
Tienes que hacer un left join:
select id_persona,count(*) as total from personas left join coches on (id_persona=id_propietario) group by id_persona
Pues yo lo he intentado y me lista tambien las personas que no tienen coches pero les aparece un 1 en lugar de 0. porque puede ser?
Tendra algo que ver con que los ids de las tablas son PK y autonumerico?
Muchas gracias
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:52.