elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 03:31  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos
| | | |-+  Duda en mysql!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda en mysql!  (Leído 696 veces)
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Duda en mysql!
« en: 12 Noviembre 2011, 14:25 »

Hola a todos

bueno llevo todo el dia con esto y no me sale haber si alguien me puede ayudar un poco. Tengo 3 tablas en una base de datos una llamada libros donde aparece el nombre del libro y el importe en euros, luego tengo otra donde estan los clientes o compradores donde aparece el nombre del cliente, su direccion... y por ultimo otra que se llama compras donde aparece el id del libro comprado y el id del cliente. (esos ids son consecutivos y use auto_incremente...)

Bueno necesito en UNA sola consulta obtener el nombre de los clientes que han comprado al menos un libro y el numero total de libros comprados ordenados decrecientemente por el numero total de libros comprados.

muchas gracias!!
saludos!!


En línea
fran800m

Desconectado Desconectado

Mensajes: 139



Ver Perfil
Re: Duda en mysql!
« Respuesta #1 en: 12 Noviembre 2011, 15:08 »

Si llevas todo el día con eso algo tendrás hecho. Postealo.


En línea
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: Duda en mysql!
« Respuesta #2 en: 12 Noviembre 2011, 15:12 »

tengo muchas consultas hechas la que mas se acerca es esta

Código:
SELECT `compradores`.`nombre` FROM `compradores`, `compras` WHERE `compras`.`id_comprador` = `compradores`.`registro`

registro y id_comprador = INT(9) UNSIGNED AUTO_INCREMENT ( el id de cada cliente y compra )

solo me salta que me muestre el numero de libros que cada cliente compro.. ( porque lo de ordenarlos y eso se como es )

saludos!
« Última modificación: 12 Noviembre 2011, 15:16 por HaX991 » En línea
fran800m

Desconectado Desconectado

Mensajes: 139



Ver Perfil
Re: Duda en mysql!
« Respuesta #3 en: 12 Noviembre 2011, 17:05 »

Si el id_comprador de la tabla compradores es registro solo te falta agrupar, contar y ordenador.

¿Tienes claro el uso del agrupamiento? Lo tienes casi hecho
En línea
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: Duda en mysql!
« Respuesta #4 en: 12 Noviembre 2011, 17:21 »

hola
pues lo de agrupar si puedes expicamelo porque no me sale al agruparlos me sale un unico registro con todo unido es decir me sale en lugar de los 8 clientes que puse de prueba me sale uno solo con el total al lado asi

comprador | total de libros

lo que quiero es que salga asi

comprador 1 | libros comprados
comprador 2 | libros comprados ..
...

que me salga los libros de cada comprador las tablas son estas
Código
CREATE TABLE IF NOT EXISTS `libros` (
`registro` INT(9) UNSIGNED AUTO_INCREMENT,
`titulo` VARCHAR(35),
`escritor` VARCHAR(35),
`editorial` VARCHAR(20),
`soporte` SET('LIBRO', 'CD', 'DVD'),
`fecha` DATETIME,
`pais` VARCHAR(20),
`importe_euros` FLOAT(8,3),
`anotaciones` BLOB,
PRIMARY KEY (`registro`, `titulo`, `pais`),
UNIQUE (`registro`)
);
 
CREATE TABLE IF NOT EXISTS `compradores` (
`registro` INT(9) UNSIGNED AUTO_INCREMENT,
`nombre` VARCHAR(35),
`fecha_nacimiento` DATETIME,
`telefono` VARCHAR(10),
`domicilio` VARCHAR(35),
`poblacion` VARCHAR(25),
`anotaciones` TEXT,
PRIMARY KEY (`registro`, `nombre`),
UNIQUE (`registro`)
);
 
CREATE TABLE IF NOT EXISTS `compras` (
`registro` INT(9) UNSIGNED AUTO_INCREMENT,
`id_comprador` INT(9) UNSIGNED,
`id_libro` INT(9) UNSIGNED,
PRIMARY KEY (`registro`),
UNIQUE (`registro`)
);
 

muchas gracias!!
En línea
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: Duda en mysql!
« Respuesta #5 en: 12 Noviembre 2011, 17:55 »

Hola

bueno ya me las arregle yo

hice esto

Código
/*Obtenemos el nombre de los compradores que han comprado al menos un libro, el numero de libros comprados ordenados decrecientemente por el numero
total de libros comprados*/

SELECT `compradores`.`nombre`, COUNT(*) FROM `compradores`, `compras` WHERE `compras`.`id_comprador` = `compradores`.`registro` GROUP BY `compradores`.`nombre` ORDER BY COUNT(*) DESC;
 

y me da como resultado:

ramon    2
will            2
pablo    1
sergio    1
leito      1
antonio    1

justo lo que queria

gracias de todas formas!
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error [MySQL][ODBC .351 Driver] Can't Connect to MySQL on 'mysql.webcindario.co'
Desarrollo Web
User 1 1,242 Último mensaje 15 Octubre 2004, 18:51
por User
Duda en MySQL
Desarrollo Web
Kasswed 2 352 Último mensaje 28 Mayo 2005, 00:07
por eLank0
DUDA MYSQL
Desarrollo Web
redHat 5 429 Último mensaje 15 Junio 2005, 21:48
por NelxoN
Duda MySQL
Desarrollo Web
Thaorius 7 444 Último mensaje 3 Julio 2005, 05:53
por -Riven-Ward-
Duda php y mysql
PHP
[KMT] 12 1,199 Último mensaje 23 Diciembre 2006, 23:53
por .Carlos
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines