tbl_perfiles,
tbl_usuarios,
tbl_usuarios_perfiles
posiblemente estoy mal entendiendo el uso de NOT IN en la clausula WHERE, no tengo experiencia con MySQL
Esta es la consulta que no me arroja nada:
Código:
Lo que pretendo hacer es de la tabla perfiles, traer en el select todos aquellos que no estén asignados al usuario, de tal forma que en un formulario poder seleccionar los que aun no hayan sido asignados y después insertar a la tabla tbl_usuarios_perfiles los elejidosSELECT tbl_perfiles.perfilId, tbl_perfiles.perfilNombre FROM tbl_usuarios_perfiles tbl_usuarios_perfiles, tbl_perfiles tbl_perfiles, tbl_usuarios tbl_usuarios WHERE tbl_usuarios_perfiles.usuarioId = tbl_usuarios.usuarioId AND tbl_usuarios_perfiles.perfilId = tbl_perfiles.perfilId AND tbl_usuarios_perfiles.perfilId NOT IN (tbl_usuarios_perfiles.perfilId) AND tbl_usuarios.usuarioId = 1
este es el codigo para crear las tablas:
tbl_perfiles
Código:
CREATE TABLE `tbl_perfiles` ( `perfilId` int(11) NOT NULL AUTO_INCREMENT COMMENT 'llave primaria de la tabla', `perfilNombre` varchar(25) NOT NULL, `perfilDescripcion` varchar(45) NOT NULL COMMENT 'Descripción del perfil', `estatusId` int(11) NOT NULL, PRIMARY KEY (`perfilId`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
tbl_usuarios
Código:
tbl_usuarios_perfilesCREATE TABLE `tbl_usuarios` ( `usuarioId` int(11) NOT NULL AUTO_INCREMENT COMMENT 'llave primaria de la tabla', `empresaId` int(11) NOT NULL, `usuarioNombre` varchar(20) NOT NULL, `nombreCompleto` varchar(254) NOT NULL, `usuarioPassword` varchar(100) NOT NULL, `usuarioEmail` varchar(60) NOT NULL, `usuarioCiudadId` int(11) NOT NULL, `usuarioVencePassword` date NOT NULL, `estatusId` int(11) NOT NULL, PRIMARY KEY (`usuarioId`), KEY `usuarioCiudadId` (`usuarioCiudadId`), KEY `empresaId` (`empresaId`), KEY `estatusId` (`estatusId`), CONSTRAINT `fk_tbl_usuarios_tbl_ciudades` FOREIGN KEY (`usuarioCiudadId`) REFERENCES `tbl_ciudades` (`ciudadId`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_tbl_usuarios_tbl_empresas` FOREIGN KEY (`empresaId`) REFERENCES `tbl_empresas` (`empresaId`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
Código:
de antemano agradezco cualquier ayuda, saludos.CREATE TABLE `tbl_usuarios_perfiles` ( `usuariosPerfilesId` int(11) NOT NULL AUTO_INCREMENT COMMENT 'llave primaria de la tabla', `usuarioId` int(11) NOT NULL, `perfilId` int(11) NOT NULL, `perfilDefault` int(11) DEFAULT NULL, PRIMARY KEY (`usuariosPerfilesId`), KEY `fk_usuarios_perfiles_usuarios_idx` (`usuarioId`), KEY `fk_usuarios_perfiles_perfiles1_idx` (`perfilId`), CONSTRAINT `fk_usuarios_perfiles_perfiles1` FOREIGN KEY (`perfilId`) REFERENCES `tbl_perfiles` (`perfilId`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_usuarios_perfiles_usuarios` FOREIGN KEY (`usuarioId`) REFERENCES `tbl_usuarios` (`usuarioId`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
P. D. realice una búsqueda en el foro para ver si hallaba algo que me diera una idea y no la encontré