Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/03/2012, 10:17
LOD_Fredy
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Consulta algo especial

Cita:
Iniciado por quimfv Ver Mensaje
Código MySQL:
Ver original
  1. SELECT pe_id,count(*) FROM personaexp GROUP BY pe_id;

Esto te da el numero de apariciones de una persona en "personaexp"


Código MySQL:
Ver original
  1. SELECT p.pe_id,p.pe_nombre
  2. FROM personas p
  3.      (SELECT pe_id,count(*) as apariciones FROM personaexp GROUP BY pe_id
  4.       UNION ALL
  5.       SELECT pe_id,count(*) as apariciones FROM personahab GROUP BY pe_id
  6.       UNION ALL
  7.       SELECT pe_id,count(*) as apariciones FROM personaidi GROUP BY pe_id) as Sbc
  8.     ON p.pe_id=Sbc.pe_id
  9. GROUP BY p.pe_id,p.pe_nombre
  10. ORDER BY SUM(Sbc.apariciones) DESC;

Era esto?

Tu codigo funciona perfecto si solo quiero ver quien tiene mas registros entre las 3 tablas, pero antes de eso, necesito ordenar dependiendo de en que tablas salga la persona, por ejemplo

pedro sale en la tabla personaexp
juan sale en la tabla personahab y personaexp
luis sale en la tabla personaidi, personaexp

entonces el orden para mostrar el pe_id y pe_nombre seria
juan
luis
pedro

todo esto independientemente de cuantos registros de juan, pedro o luis haya.

si luis tambien estuviera en la tabla personahab, saldria en primer lugar y juan en segundo. Y de esto hay muchas variantes pues tambien habra filtros que deberan traerse los datos de las personas que coincidan con esos filtros.

Hacer todo lo que necesito en una sola consulta a mi no se me hace sencillo, obvio alguien con mas experiencia que yo en mysql puede que la saque igual y en un dia de quebrarse la cabeza, yo llevo 3 dias y nomas no logro lo que necesito, minimo lo de ordenar el pe_id y pe_nombre a partir de en cuantas tablas se encontro a la persona y ordenar de la que se encuentra en las 3, en 2 o en 1.

Gracias y pues, dejo un poco pendiente esto por que me salio otra chamba que es para mañana.

Última edición por LOD_Fredy; 30/03/2012 a las 15:41