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

[SOLUCIONADO] Una simple consulta entre dos tablas... o talvez no tan simple...

Estas en el tema de Una simple consulta entre dos tablas... o talvez no tan simple... en el foro de Mysql en Foros del Web. Bueno, hace mucho que uso mysql, pero tengo un tema entre manos y no se como resolverlo. El esquema simplificado es el siguiente.. | TABLA_USUARIO: ...
  #1 (permalink)  
Antiguo 03/09/2013, 16:55
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 21 años, 1 mes
Puntos: 0
Exclamación Una simple consulta entre dos tablas... o talvez no tan simple...

Bueno, hace mucho que uso mysql, pero tengo un tema entre manos y no se como resolverlo.
El esquema simplificado es el siguiente..


|TABLA_USUARIO: |
|campo_id_usuario |__________________________| TABLA_POSTEOS: |
|campo_id_posteos | <-1--------- Muchos-> | campo_id_posteo|

Concepto: 1 Usuario puede tener Muchos Posteos.

Necesito seleccionar todos los "campo_id_usuario" de la "tabla_usuario" ordenados desendentemente según la cantidad de posteos que tengan.

Ya busque en mis manuales... y no tengo la mas pálida idea de como hacer esto, que parece sencillo pero para mi no lo es...

Muchas Gracias a todos!
Abrazo!
  #2 (permalink)  
Antiguo 03/09/2013, 23:26
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Una simple consulta entre dos tablas... o talvez no tan simple...

Necesita los distintos id_usuario y a eso ponerles la suma los id_posteo ???
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #3 (permalink)  
Antiguo 03/09/2013, 23:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Una simple consulta entre dos tablas... o talvez no tan simple...

Si en la TABLA_POSTEOS tienes el campo_id_usuario relacionado con el campo_id_usuario de la TABLA_USUARIO no tendrás problemas
Código MySQL:
Ver original
  1.     campo_id_usuario,
  2.     COUNT(*) totalposteos
  3.   FROM TABLA_POSTEOS
  4.      GROUP BY campo_id_usuario
  5.      ORDER BY totalposteos DESC
Ni siquiera necesitas usar la TABLA_USUARIO. Pero no sé si esa es tu estructura. Acláranos qué campos hay en la TABLA_USUARIO y cuáles en la TABLA_POSTEOS y cómo están relacionados, pues no lo veo claro. La estructura sería esta que te digo: en la TABLA_USUARIOS hay un Primary Key que sería campo_id_usuario,pero en la TABLA_POSTEOS debería haber un campo Foreign Key relacionado con el valor de ese campo_id_usuario, además, claro del campo_id_posteo. Dinos cómo lo tienes.
  #4 (permalink)  
Antiguo 04/09/2013, 06:23
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 21 años, 1 mes
Puntos: 0
Sonrisa Consulta de Conteo y ordenamiento entre dos tablas

Bueno, no se como encarar esta consulta... les paso a explicar...

Tengo dos Tablas, la tabla tb_sca que almacena los alumnos y la tabla tb_alm_apuntes que almacena los apuntes que cada alumno toma (si es que lo hace).

Un alumno puede o no tomar apuntes...
Un alumno puede tomar varios apuntes...

O sea... que por cada registro de la tabla tb_sca pueden existir CERO o varios registros en la tabla tb_alm_apuntes....

O sea... es una relación 1 a muchos donde el campo que las vincula es el ID del usuario.


tb_sca Es la tabla que almacena los alumnos de mi sistema.

La estructura resumida es la siguiente:

sca_usr_id
-> Primary Key - Autoincremental -> Contiene el ID del alumno
sca_usr_persona_nombre -> Almacena el nombre del alumno
sca_usr_persona_apellido -> Almacena el apellido del alumno



tb_alm_apuntes
Es la tabla que contiene los apuntes que toman los alumnos

La estructura resumida es la siguiente:
alm_apunte_ai -> Primary key - Autoincremental -> Contiene el ID del Apunte
alm_apunte_alm_id -> Contiene el ID del alumno
alm_apunte_texto -> Almacena el Texto del apunte tomado.

Necesito y no se como hacerlo :

>> Obtener SOLAMENTE todos los alumnos que tengan apuntes
>> Ordenar la consulta de manera que los alumnos que más apuntes tengan salgan primero.

Gracias!!!!!!! INFINITAS por la ayuda!!!
  #5 (permalink)  
Antiguo 04/09/2013, 06:35
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: Una simple consulta entre dos tablas... o talvez no tan simple...

@nublar: A estas alturas ya deberías saber que no se deben abrir dos temas para resolver un mismo problema, y menos aún para detallar uno que ya esta en curso.
Ese tipo de temas será fusionado sin previo aviso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 04/09/2013, 06:41
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Una simple consulta entre dos tablas... o talvez no tan simple...

gnzsoloyo discupáme por favor.

Veo que el post

http://www.forosdelweb.com/f86/consu...ablas-1072046/

se borro... no se fucionó nada...

Como puedo recuperarlo?
  #7 (permalink)  
Antiguo 04/09/2013, 07:07
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: Una simple consulta entre dos tablas... o talvez no tan simple...

No se borró. Quedó antes de tu último mensaje en este post...
Mira bien.

El ordenamiento de los pots se realiza por su fecha y hora de ingreso, y eso no lo puedo cambiar. Como tu pusiste el último post después de abrir ese, quedó entremedio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 04/09/2013, 07:50
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: Una simple consulta entre dos tablas... o talvez no tan simple...

Es un problema medio de manual.

Sólo los que tienen apuntes:
Código MySQL:
Ver original
  1. SELECT AL.sca_usr_id IdAlumno, AL.sca_usr_persona_nombre Nombre, AL.sca_usr_persona_apellido Apellido, COUNT(AP.alm_apunte_ai) Apuntes
  2. tb_sca Al INNER JOIN tb_alm_apuntes AP ON AL.sca_usr_id  = AP.alm_apunte_alm_id
  3. GROUP BY AL.sca_usr_id
  4. ORDER BY Apuntes DESC;
Todos:
Código MySQL:
Ver original
  1. SELECT AL.sca_usr_id IdAlumno, AL.sca_usr_persona_nombre Nombre, AL.sca_usr_persona_apellido Apellido, COUNT(AP.alm_apunte_ai) Apuntes
  2. tb_sca Al LEFT JOIN tb_alm_apuntes AP ON AL.sca_usr_id  = AP.alm_apunte_alm_id
  3. GROUP BY AL.sca_usr_id
  4. ORDER BY Apuntes DESC;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 04/09/2013, 08:00
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Una simple consulta entre dos tablas... o talvez no tan simple...

Gracias Capo! me pongo a probar a ver si me funciona y aviso
  #10 (permalink)  
Antiguo 04/09/2013, 08:17
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 21 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Una simple consulta entre dos tablas... o talvez no tan simple...

gnzsoloyo Funcionó de 10!!
Gracias!!!

Bueno ahora me voy a poner a estudiar bien este tema de los INNER JOIN, ya que siempre les escapé un poco...


Y por lo que veo, lo fantástico es que el conteo de la tabla apuntes lo metiste como un campo en la consulta select, esa no la sabía!!!

Gracias nuevamente!

Etiquetas: campo, conteo, ordenamiento, registro, registros, simple, sql, tabla, tablas
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:53.