Hola buenas tardes, estoy intentando hacer un select de 3 tablas que tengo relacionadas y son las siguientes:
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:
SELECT
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
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 elejidos
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:
CREATE 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
tbl_usuarios_perfiles
Código:
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
de antemano agradezco cualquier ayuda, saludos.
P. D. realice una búsqueda en el foro para ver si hallaba algo que me diera una idea y no la encontré