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

ayuda con una consulta

Estas en el tema de ayuda con una consulta en el foro de Mysql en Foros del Web. primero que nada estes mi problema estoy haciendo una base de datos sobre una biblioteca y tengo en la biblioteca tres usuarios: alumnos, profesores, administrativos ...
  #1 (permalink)  
Antiguo 10/06/2010, 12:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
ayuda con una consulta

primero que nada estes mi problema estoy haciendo una base de datos sobre una biblioteca y tengo en la biblioteca tres usuarios: alumnos, profesores, administrativos y la tabla libro y prestamos pero necesito realizar una consulta como por ejemplo introducir el numero de cedula de un usuario cualquiera y me traiga los datos del el como nombre apellido el nombre del libro que se le presto la fecha en que se lo llevo pero esa consulta no me sale me preguntan que si las relaciones estan bien pero yo no se como hacer las relaciones en mysql pero bueno mi problema es con la consulta les pondre las tablas para ver si me pueden ayudar

CREATE TABLE `administrativo` (
`tu_nombre` varchar(255) NOT NULL,
`tu_apellido` varchar(255) NOT NULL,
`tu_cedula` int(11) NOT NULL,
`tu_telefono` varchar(255) NOT NULL,
`departamento_admin` varchar(255) NOT NULL,
PRIMARY KEY (`tu_cedula`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `profesor` (
`tu_nombre` varchar(255) NOT NULL,
`tu_apellido` varchar(255) NOT NULL,
`tu_cedula` int(11) NOT NULL,
`tu_telefono` varchar(255) NOT NULL,
`tu_email` varchar(255) NOT NULL,
`tu_escuela` varchar(255) NOT NULL,
`tu_materia` varchar(255) NOT NULL,
PRIMARY KEY (`tu_cedula`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `alumnos` (
`tu_nombre` varchar(255) NOT NULL,
`tu_apellido` varchar(255) NOT NULL,
`tu_cedula` int(11) NOT NULL,
`tu_direccion` varchar(255) NOT NULL,
`tu_telefono` varchar(255) NOT NULL,
`tu_email` varchar(255) NOT NULL,
`tu_escuela` varchar(255) NOT NULL,
`semestre_cursa` varchar(255) NOT NULL,
PRIMARY KEY (`tu_cedula`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `libros` (
`codigo_libro` varchar(255) NOT NULL,
`autor_libro` varchar(255) NOT NULL,
`titulo_libro` varchar(255) NOT NULL,
`editorial_libro` varchar(255) NOT NULL,
PRIMARY KEY (`codigo_libro`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `prestamos` (
`id` int(11) NOT NULL,
`tu_cedula` int(11) NOT NULL,
`codigo_libro` varchar(255) NOT NULL,
`titulo_libro` varchar(255) NOT NULL,
`prestado` date NOT NULL,
`devuelto` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  #2 (permalink)  
Antiguo 10/06/2010, 13:37
 
Fecha de Ingreso: diciembre-2008
Ubicación: Perú
Mensajes: 20
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ayuda con una consulta

HOLA:
Una salida seria que hagas una sola tabla PERSONA(Ahi estaria con su campo de indicador si es ALUMNO,PROFESOR U ADMINISTRATIVO), simplificarias las cosas ya que tambien tienes campos iguales en las 3 tablas....

Saludos....
  #3 (permalink)  
Antiguo 10/06/2010, 17:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: ayuda con una consulta

Creo que concuerdo con LozanoCavero pues podrias simplificar con una sola tabla para unificar ( alumnos,profesores,administrativos) y entonces podrias hacer una tabla catalogo donde pongas las 3 personas.

Ahora bien si quieres conservar esa estructura tendrias que tomar el valor de la cedula y hacer la conparación con con cada una de las tablas hasta que te devuelva el registro buscado, esto sera en caso de que las cedulas sean unicas.

Despues tendras que hacer otro query donde compararias la cedula con la tabla prestamos y asi poder saber que libros se pretaron para esa persona.

Espero te sirva....
  #4 (permalink)  
Antiguo 10/06/2010, 17:59
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 1
Respuesta: ayuda con una consulta

para tu modelo hice esta consulta pruebala
Código SQL:
Ver original
  1. SELECT alumnos.tu_nombre AS nombre, alumnos.tu_apellido AS apellido, alumnos.tu_email AS email, libros.titulo_libro AS libro, prestamos.prestado AS prestamo,  prestamos.devuelto FROM alumnos INNER JOIN prestamos ON (alumnos.tu_cedula = prestamos.tu_cedula) INNER JOIN  libros ON (prestamos.codigo_libro = libros.codigo_libro)

tu modelo no es!

Etiquetas: Ninguno
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:14.