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

Problema con left join y 2 tablas

Estas en el tema de Problema con left join y 2 tablas en el foro de Mysql en Foros del Web. Que tal compañeros, tengo un problema, necesito hacer una consulta donde me retorne todas las series que tengo en la tabla series pero, a su ...
  #1 (permalink)  
Antiguo 13/05/2012, 20:47
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Problema con left join y 2 tablas

Que tal compañeros, tengo un problema, necesito hacer una consulta donde me retorne todas las series que tengo en la tabla series pero, a su vez necesito que me sume todas las visualizaciones que han tenido sus respectivos capítulos dentro de la misma sentencia, para que se entienda mejor explico las tablas

tablas:
Código:
series:
id 	| serie
1	| serie 1
2 	| serie 2
3 	| serie 3
4 	| serie 4
5 	| serie 5

capitulos:
id 	| idSerie 	| reproducciones
1 	| 1 		| 3
2 	| 1 		| 5
3 	| 2 		| 8
4 	| 3 		| 2
5 	| 3 		| 1
Ahora, mostraré lo que eh intentado hacer hasta el momento...

Código SQL:
Ver original
  1. SELECT
  2.    se.id,
  3.    se.serie,
  4.    sc.suma
  5. FROM
  6.    series se
  7.       LEFT JOIN
  8.          (SELECT capitulos.idSerie,SUM(capitulos.reproducciones) AS suma FROM capitulos) sc ON sc.idSerie=se.id

Me costo trabajo crear la sentencia anterior ya que no domino SQL, y realiza a medias lo que necesito, me retorna cada serie por separado, pero me suma todas las reproducciones sin importar el idSerie, lo que necesito es que me sume las reproducciones de los capítulos dependiendo del campo idSerie, con las tablas anteriores debería obtener algo así...

Código:
resultado:
id 	| serie 	| suma
1 	| serie 1 	| 8
2 	| serie 2 	| 3
3 	| serie 3 	| 4
pero obtengo esto
Código:
resultado:
id 	| serie 	| suma
1 	| serie 1 	| 15
2 	| serie 2 	| NULL
3 	| serie 3 	| NULL
Agradezco toda la ayuda que me puedan proporcionar....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #2 (permalink)  
Antiguo 13/05/2012, 21:14
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: Problema con left join y 2 tablas

Con una función y menos elaboración tienes mejores resultados:
Código MySQL:
Ver original
  1.    se.id,
  2.    se.serie,
  3.    IFNULL(SUM(sc.reproducciones), 0) suma
  4.    series se
  5.    LEFT JOIN capitulos sc ON sc.idSerie=se.id
  6. GROUP BY se.id;

IFNULL() te permite evitar que salga NULL en aquellas series que no han tenido reproducciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/05/2012, 21:31
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Problema con left join y 2 tablas

excelente @gnzsoloyo, funciona perfecto, te agradezco mucho la ayuda, una pregunta mas, conocerás algún buen tutorial o manual(?) sobre SQL?
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 11/08/2012, 05:09
Avatar de gerardo_goh  
Fecha de Ingreso: noviembre-2008
Mensajes: 107
Antigüedad: 16 años
Puntos: 1
Respuesta: Problema con left join y 2 tablas

Excelente!!!!
  #5 (permalink)  
Antiguo 11/08/2012, 09:33
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: Problema con left join y 2 tablas

Cita:
Iniciado por Nemutagk Ver Mensaje
excelente @gnzsoloyo, funciona perfecto, te agradezco mucho la ayuda, una pregunta mas, conocerás algún buen tutorial o manual(?) sobre SQL?
En realidad, no conozco muchos manuales extra, porque yo suelo usar principalmente los manuales de referencia de cada DBMS (el de MySQL en este caso).
Por otro lado, lo que sé de teoría lo aprendí en las cursadas de Base de Datos en la Universidad, y el resto con la práctica en diferentes proyectos.
Para mi, siempre es bueno hacer al menos un curso de Bases de Datos en forma personal, no a distancia ni tutoriales, porque el tema tiene ciertos conceptos que para entenderlos necesitas de alguien con conocimientos formales que te guíe.
No hay muchos verdaderos expertos en BBDD que sean completamente autodidactas. Es un área que necesita de ciertos conocimientos bien asentados.
__________________
¿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, left, select, sql, tabla, tablas, campos
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 12:56.