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

Hacer una Consulta

Estas en el tema de Hacer una Consulta en el foro de Mysql en Foros del Web. hola a todos soy nuevo en el foro , esta es mi primera consulta q publico espero que me ayuden por favor gracias esta bien ...
  #1 (permalink)  
Antiguo 15/10/2009, 19:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Sonrisa Hacer una Consulta

hola a todos soy nuevo en el foro , esta es mi primera consulta q publico espero que me ayuden por favor gracias

esta bien esta es consulta:
SELECT apellidos, nombres, n1, nombrecurso
FROM docente A
INNER JOIN alumno B ON B.codalumno = A.codalumno
INNER JOIN notas C ON C.codalumno=B.codalumno
INNER JOIN cursos D ON D.codcurso = C.codcursos


si esta bien porque me sale error de ambiguedad , la verda que soy nuevo tambien en php Gracias
  #2 (permalink)  
Antiguo 15/10/2009, 19:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Hacer una Consulta

Tema movido a Mysql desde PHP orientado a objetos

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 15/10/2009, 21:24
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: Hacer una Consulta

Técnicamente, la consulta está bien escrita. Si te sale un error de ambigüedad en un campo es porque el nombre de uno de los campos puestos en el SELECt aparece en dos tablas diferentes del FROM, y MySQL no sabe a cuál te refieres.
Fijate cuál es el que quieres poner y ponle el nombre de la tabla al campo separado por un punto:

Código SQL:
Ver original
  1. SELECT A.apellidos, A.nombres, N.n1, C.nombrecurso
  2. FROM docente D
  3. INNER JOIN alumno A USING(codalumno)
  4. INNER JOIN notas N USING(codalumno)
  5. INNER JOIN cursos C USING(codcursos);

Un tip: Es mejor que pongas los alias con una sigla que te recuerde el nombre de la tabla (mnemotecnia), para recordarlos más fácilmente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 17/10/2009, 20:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Hacer una Consulta

Muchas gracias por la ayuda ,que simple que era solo era :
SELECT A.apellidos, B.nombres, C.n1, D.nombrecurso
FROM docente A
INNER JOIN alumno B ON B.codalumno = A.codalumno
INNER JOIN notas C ON C.codalumno = B.codalumno
INNER JOIN cursos D ON D.codcurso = C.codcurso
LIMIT 0 , 30;

bueno aveces nos ahogamos en un vaso de agua, mire estoy desarrollando un control academico para un colegio ,me gustaria que me ayude por favor con la modelacion de la base de datos :
create database colegio;

use colegio;

CREATE TABLE `alumno` (
`codalumno` varchar(6) NOT NULL,
`nombres` varchar(30) NOT NULL,
`apellidos` varchar(50) NOT NULL,
`sexo` varchar(20) NOT NULL,
`fechan` varchar(14) NOT NULL,
`telefono` varchar(15) NOT NULL,
`direccion` varchar(50) NOT NULL,
`email` varchar(60) NOT NULL,
PRIMARY KEY (`codalumno`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `alumno`
--
INSERT INTO `alumno` VALUES ('06592E', 'Edith', 'Cruz Maza', 'Femenina', '18/11/89', '271511', 'Marte', '[email protected]');
INSERT INTO `alumno` VALUES ('2004D', 'Wilfredo', 'Layme Casilla', 'Masculino', '15/20/1985', '270153', 'Cusco', '[email protected]');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `aula`
--

CREATE TABLE `aula` (
`codaula` varchar(6) NOT NULL,
`capacidad` varchar(50) NOT NULL,
PRIMARY KEY (`codaula`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `aula`
--

INSERT INTO `aula` VALUES ('2004D', '20');
INSERT INTO `aula` VALUES ('2005D', '15');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `cursos`
--

CREATE TABLE `cursos` (
`codcurso` varchar(6) NOT NULL,
`nombrecurso` varchar(30) NOT NULL,
PRIMARY KEY (`codcurso`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `cursos`
--


INSERT INTO `cursos` VALUES ('06593W', 'Ciencia y Tecnologia');
INSERT INTO `cursos` VALUES ('2004F', 'Fisica');
INSERT INTO `cursos` VALUES ('2004L', 'Lenguaje');
INSERT INTO `cursos` VALUES ('2004M', 'Matematica');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `docente`
--

CREATE TABLE `docente` (
`coddocente` varchar(6) NOT NULL,
`nombres` varchar(30) NOT NULL,
`apellidos` varchar(50) NOT NULL,
`dni` varchar(8) NOT NULL,
`fechan` varchar(14) NOT NULL,
`telefono` int(15) default NULL,
`sexo` varchar(20) NOT NULL,
`especialidad` varchar(50) NOT NULL,
`email` varchar(60) default NULL,
`direccion` varchar(60) NOT NULL,
`codalumno` varchar(6) NOT NULL,
PRIMARY KEY (`coddocente`),
FOREIGN KEY (`codalumno`) REFERENCES `alumno` (`codalumno`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `docente`
--

INSERT INTO `docente` VALUES ('D2004', 'Mario', 'Cusi Nina', '42793154', '12/01/75', 256389, 'Masculino', 'Matematica', '[email protected]', 'Cusco', '2004D');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `horario`
--

CREATE TABLE `horario` (
`codhorario` varchar(6) NOT NULL,
`turno` varchar(15) NOT NULL,
`horaini` varchar(30) NOT NULL,
`horafin` varchar(30) NOT NULL,
`codalumno` varchar(6) NOT NULL,
`coddocente` varchar(6) NOT NULL,
PRIMARY KEY (`codhorario`),
FOREIGN KEY (`codalumno`) REFERENCES `alumno` (`codalumno`),
FOREIGN KEY (`coddocente`) REFERENCES `docente` (`coddocente`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `horario`
--


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `matricula`
--

CREATE TABLE `matricula` (
`codmatricula` varchar(8) NOT NULL,
`fechamat` varchar(14) NOT NULL,
`Nivel` varchar(20) NOT NULL,
`Grado` varchar(1) NOT NULL,
`Seccion` varchar(1) NOT NULL,
`Turno` varchar(20) NOT NULL,
`observaciones` varchar(80) NOT NULL,
`codalumno` varchar(6) NOT NULL,
`codaula` varchar(6) NOT NULL,
PRIMARY KEY (`codmatricula`),
FOREIGN KEY (`codalumno`) REFERENCES `alumno` (`codalumno`),
FOREIGN KEY (`codaula`) REFERENCES `aula` (`codaula`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `matricula`
--


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `notas`
--

CREATE TABLE `notas` (
`codnota` varchar(6) NOT NULL,
`n1` int(2) NULL,
`n2` int(2) NULL,
`promedio` int(2) NULL,
`codalumno` varchar(6) NOT NULL,
`codcurso` varchar(6) NOT NULL,
PRIMARY KEY (`codnota`, `codalumno`),
FOREIGN KEY (`codalumno`) REFERENCES `alumno` (`codalumno`),
FOREIGN KEY (`codcurso`) REFERENCES `cursos` (`codcurso`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `notas`
--


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `registro`
--

CREATE TABLE `registro` (
`codigo` varchar(6) NOT NULL,
`direccion` varchar(30) NOT NULL,
`usuario` varchar(25) NOT NULL,
`contrasena` varchar(20) NOT NULL,
`sexo` varchar(15) NOT NULL,
`ciudad` varchar(30) NOT NULL,
`email` varchar(50) NOT NULL,
`codalumno` varchar(6) NOT NULL,
`codcurso` varchar(6) NOT NULL,
`codnota` varchar(6) NOT NULL,
PRIMARY KEY (`codigo`),
FOREIGN KEY (`codalumno`) REFERENCES `alumno` (`codalumno`),
FOREIGN KEY (`codcurso`) REFERENCES `cursos` (`codcurso`),
FOREIGN KEY (`codnota`) REFERENCES `notas` (`codnota`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;


esta bien modelado la base de datos; antemano Gracias por la respuesta.
  #5 (permalink)  
Antiguo 17/10/2009, 20:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: base de dato

Muchas gracias por la ayuda ,que simple que era solo era :


esta bien modelado la base de datos; antemano Gracias por la respuesta.

Última edición por wilfredo_205; 17/10/2009 a las 20:51
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 19:18.