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

agrupamiento y JOIN

Estas en el tema de agrupamiento y JOIN en el foro de Mysql en Foros del Web. Hola. Tengo una duda al hacer una select con un agrupamiento y un JOIN. Imagino que habrá que hacer una subselect pero no lo veo ...
  #1 (permalink)  
Antiguo 30/05/2013, 10:59
 
Fecha de Ingreso: marzo-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
agrupamiento y JOIN

Hola.
Tengo una duda al hacer una select con un agrupamiento y un JOIN.
Imagino que habrá que hacer una subselect pero no lo veo claro.

Si tengo dos tablas como las de abajo y ejecuto:

Código MySQL:
Ver original
  1. select materia, count(*)
  2. from  CALIFICACIONES  
  3. group by materia;

evidentemente se obtiene el número de alumnos por código de materia, pero no quiero que salga el código sino el título de la materia por lo que debería haber un join.

el resultado debería ser algo como esto:

filosofia 3
lengua 2

Gracias y un saludo


TABLA CALIFICACIONES

nombre nota materia
pepe 5 10
luisito 6 20
marta 4 10
ana 5 10
jaime 1 20

TABLA MATERIAS

materia titulo
10 filosofia
20 lengua

Última edición por gnzsoloyo; 04/06/2013 a las 05:10 Razón: SQL mal resaltado.
  #2 (permalink)  
Antiguo 30/05/2013, 11:38
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: agrupamiento y JOIN

Hola javiinet:

Esto es una pregunta de nivel básico . Me sorprende que no hayas podido sacarla por tu cuenta...

Checa esta liga para que aprendas como funcionan los JOIN's:

http://es.wikipedia.org/wiki/Join

Una ves que hagas un INNER JOIN entre tus dos tablas (utilizando el campo MATERIA en la cláusula ON) simplemente cambias tu SELECT por


Código MySQL:
Ver original
  1. SELECT materias.titulo, count(materias.titulo)
  2. ....
  3. ....


Y no olvides agrupar por el mismo campo que utilizas en el SELECT.

Saludos
Leo.
  #3 (permalink)  
Antiguo 30/05/2013, 12:35
 
Fecha de Ingreso: marzo-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: agrupamiento y JOIN

¿una cosa así?
Código MySQL:
Ver original
  1. SELECT materias.titulo, count(materias.titulo)
  2. FROM materias, calificaciones
  3. WHERE (materias.materia = calificaciones.materia)
  4. GROUP BY materias.titulo;



pues no funciona

Última edición por gnzsoloyo; 04/06/2013 a las 05:11
  #4 (permalink)  
Antiguo 30/05/2013, 12:40
 
Fecha de Ingreso: marzo-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: agrupamiento y JOIN

Sí, si que funciona.... había un espacio en blanco tras el count....
....
bbbbrrrrrrrr

gracias
  #5 (permalink)  
Antiguo 30/05/2013, 12:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: agrupamiento y JOIN

¿Entendiste que Leo hablaba del INNER JOIN, y no del JOIN implícito?
No hagas JOINs en el WHERE...
Código MySQL:
Ver original
  1. SELECT M.titulo, count(M.titulo)
  2. FROM materias M INNER JOIN calificaciones C ON M.materia = C.materia
  3. GROUP BY M.titulo;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join, select, tabla
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 23:11.