Ver Mensaje Individual
  #6  
Antiguo 28-07-2016
oleong oleong is offline
Registrado
NULL
 
Registrado: jul 2016
Posts: 6
Reputación: 0
oleong Va por buen camino
Hola de nuevo, se me ha presentado un error si me podrian ayudar a corregirlo usando datos reales en la consulta para omitir ejercicios repetidos, al ejecutar el query me repite los ejercicios que ya habia hecho

Código SQL [-]
CREATE TABLE IF NOT EXISTS `ejercicio` (
  `id` int(11) NOT NULL,
  `nombre` varchar(50) NOT NULL,
  `planteamiento` varchar(500) NOT NULL,
  `complejidad` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Código SQL [-]
CREATE TABLE IF NOT EXISTS `evaluacion` (
  `id` int(250) NOT NULL,
  `idusuario` int(250) NOT NULL,
  `idejercicio` int(250) NOT NULL,
  `nombrejercicio` varchar(250) NOT NULL,
  `gusto` int(250) DEFAULT NULL,
  `dificultad` int(250) DEFAULT NULL,
  `tiempo` time DEFAULT NULL,
  `estado` varchar(100) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
Código SQL [-]
CREATE TABLE IF NOT EXISTS `usuario` (
  `id` int(11) NOT NULL,
  `nombre` varchar(500) NOT NULL,
  `apellido` varchar(100) NOT NULL,
  `edad` varchar(100) DEFAULT NULL,
  `matricula` int(11) DEFAULT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `sexo` varchar(100) DEFAULT NULL,
  `estatus` varchar(100) DEFAULT NULL,
  `curso` varchar(100) DEFAULT NULL,
  `admin` int(11) NOT NULL,
  `created_at` datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

Código SQL [-]
INSERT INTO `ejercicio` (`id`, `nombre`, `planteamiento`, `complejidad`) VALUES
(1, 'fibonacci', 'Los numeros de Fibonacci comienzan con 0 y 1, y los siguientes terminos siempre son la suma de los dos anteriores.\nEn la siguiente tabla, podemos ver los numeros de Fibonacci desde el 0-esimo hasta el duodecimo.\n\nFn  0  1  1  2  3  5  8  13  21  34  55  89  144  ...', 'media'),
(2, 'Par', 'Verificar si un numero es par o no, usando mod', 'Bajo'),
(3, 'Primo', 'Verificar si un numero es primo o no', 'media'),
(4, 'sumatoria de numero', 'tienes que sumar 3 numeros ingresados', 'facil'),
(5, 'cajero con iva 12%', 'realizar un sistema de cajero que pague con 12%', 'media'),
(6, 'ping pong ', 'realizar ping pong ', 'Baja');
Código SQL [-]
INSERT INTO `evaluacion` (`id`, `idusuario`, `idejercicio`, `nombrejercicio`, `gusto`, `dificultad`, `tiempo`, `estado`) VALUES
(10, 2, 1, 'fibonacci', 3, 2, '00:00:03', 'Evaluado'),
(11, 2, 2, 'Par', 3, 2, '00:00:02', 'Evaluado'),
(12, 1, 1, 'fibonacci', 2, 4, '00:00:02', 'Evaluado'),
(13, 1, 4, 'sumatoria de numero', 3, 2, '00:00:02', 'Evaluado'),
(14, 2, 6, 'ping pong ', 5, 3, '00:00:03', 'Evaluado'),
(15, 2, 3, 'Primo', 3, 2, '00:00:03', 'Evaluado'),
(16, 6, 2, 'Par', 3, 2, '00:00:02', 'Evaluado'),
(17, 6, 6, 'ping pong ', 3, 2, '00:00:05', 'Evaluado');
Código SQL [-]
INSERT INTO `usuario` (`id`, `nombre`, `apellido`, `edad`, `matricula`, `email`, `password`, `sexo`, `estatus`, `curso`, `admin`, `created_at`) VALUES
(1, 'Ricardo Andres', 'Carbo Velez', '23', 1, 'rcarbovelez@gmail.com', '12345', 'Masculino', 'Estudiante', 'Matutina', 0, '2016-07-04 02:05:36'),
(2, 'Oscar', 'Leon', '22', 1, 'asd@gmail.com', '123456', 'Masculino', 'Estudiante', 'Nocturna', 0, '2016-07-02 00:23:23'),
(3, 'Genesis ', 'Bayas Senisterra', '20', 1, 'geka-b95@hotmail.com', 'qwerty', 'Femenino', 'Docente', 'Nocturna', 0, '2016-07-05 17:52:44'),
(4, 'Oscar', 'Granizo', '22', 1, 'admin@gmail.com', '123456', 'Masculino', 'Administrador', 'Matutina', 1, '2016-07-04 02:05:36'),
(5, 'Dario ', 'Leon', '22', 1, 'zxc@gmail.com', '123', 'Masculino', 'Docente', 'Nocturna', 0, '2016-07-05 17:52:44'),
(6, 'juan', 'piguave', '23', 1, 'juan@gmail.com', '123456', 'Masculino', 'Estudiante', 'Matutina', 0, '2016-07-16 10:02:15');

esta es la consulta
Código SQL [-]
SELECT todos.idusuario, todos.idejercicio, todos.nombrejercicio FROM evaluacion yo INNER JOIN evaluacion ellos ON yo.idejercicio = ellos.idejercicio AND yo.idusuario <> ellos.idusuario INNER JOIN evaluacion todos ON todos.idusuario = ellos.idusuario AND todos.idejercicio <> yo.idejercicio WHERE yo.idusuario = 6 ORDER BY  todos.idusuario, todos.idejercicio
el usuario 6 ha realizado los ejercicios par y ping pong al ejecutar el query deberia de recomendar fibonacci y primo, los recomienda si pero repite los que ya ha hecho no los omite
si me pueden ayudar en eso gracias.

ejecutado en SQL Fiddle sqlfiddle.com/#!9/8fbe0/1

Última edición por oleong fecha: 28-07-2016 a las 16:36:00. Razón: falto informacion
Responder Con Cita