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