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

Suma en una sola consulta

Estas en el tema de Suma en una sola consulta en el foro de Mysql en Foros del Web. Buenas!!! :D Hace tiempo que no pregunto algo de MySQL... y mira que soy patoso con las bbdd. Tengo 2 tablas con una columna que ...
  #1 (permalink)  
Antiguo 10/11/2015, 17:36
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Suma en una sola consulta

Buenas!!! :D

Hace tiempo que no pregunto algo de MySQL... y mira que soy patoso con las bbdd.

Tengo 2 tablas con una columna que las relaciona.

tabla Libros = ID,NOMBRE,AUTOR
tabla Autores = ID,NOMBRE,PAIS

Necesito sumar todos los libros de un determinado pais. Puedo hacerlo con una consulta sencilla pasando por todos los autores con una subconsulta que cuente sus libros algo como:
Código SQL:
Ver original
  1. SELECT (SELECT COUNT(ID) FROM libros WHERE autor=autores.id LIMIT 1 ) AS cuenta FROM autores WHERE pais="es"

De este modo tendría que pasar por cada autor y luego sumar.

Me pregunto si es posible hacerlo todo en una sola consulta, sin tener que hacer un while... pero no sé si es posible.

:D

¿No creo ser un obsesivo de optimizar no? :)... no se que me ocurre pero no entiendo como algunos foreros tienen facilidad para las consultas complejas. Con PHP, con C... no me pierdo... pero cuando me dices hacer una consulta en MySQL un poco compleja... es como una locura para mi.

:D

Última edición por gnzsoloyo; 10/11/2015 a las 18:11
  #2 (permalink)  
Antiguo 11/11/2015, 07:13
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: Suma en una sola consulta

Es un problema de manual básico. TE recomiendo estudiar los diferentes usos de JOIN.

Código SQL:
Ver original
  1. SELECT COUNT(DISTINCT L.id) TotalLibros
  2. FROM libros L INNER JOIN autores A ON L.autor = A.id
  3. WHERE A.pais = 'es'
__________________
¿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 12/11/2015, 09:56
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Suma en una sola consulta

Como siempre gnzsoloyo muchas gracias...

El problema que tengo con las bases de datos es que me estudio los manuales... y luego por alguna razon se me olvida. :(

Muchas gracias!

Etiquetas: php, select, sql, suma, 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 11:25.