Hola saludos
Tengo dos tablas: Persona y Usuario
CREATE TABLE PERSONA(
codigo VARCHAR(7) NOT NULL PRIMARY KEY,
cedula VARCHAR(20) NOT NULL UNIQUE,
nombre VARCHAR(30) NOT NULL,
apellido VARCHAR(40) NOT NULL,
telefono VARCHAR(20),
correo VARCHAR(40),
tipo_persona VARCHAR(15) NOT NULL,
CONSTRAINT ck_tipo_persona CHECK(tipo_persona IN('Catador', 'Administrador', 'Asociado', 'Particular')))
CREATE TABLE USUARIO(
codigo VARCHAR(7) PRIMARY KEY,
nombre_usuario VARCHAR(30) NOT NULL UNIQUE,
contrasenia VARCHAR(30) NOT NULL,
permiso VARCHAR(2) NOT NULL DEFAULT 'SI',
tipo_usuario VARCHAR(15) NOT NULL DEFAULT 'Usuario',
fk_codigo_persona VARCHAR(7) NOT NULL,
CONSTRAINT fk_codPersona1 FOREIGN KEY(fk_codigo_persona) REFERENCES PERSONA(codigo) ON DELETE CASCADE,
CONSTRAINT ck_codTipo_usuario1 CHECK(tipo_usuario IN('Usuario', 'Administrador')),
CONSTRAINT ck_permiso CHECK(permiso IN('SI','NO')))
Deseo realizar una consulta de todos en la tabla Persona cuyo tipo_persona sea "Catador" y a la vez en caso de que haya una referencia de alguno de éstos en la tabla Usuario entonces también visualizar algunos datos de la tabla Usuario, ahora bien utilizo ésta sentencia:
SELECT P.cedula 'Cedula',
P.nombre 'Nombre',
P.apellido 'Apellido',
P.telefono 'Teléfono',
P.correo 'Correo',
U.nombre_usuario 'Usuario',
U.permiso 'Permiso'
FROM PERSONA P LEFT JOIN USUARIO U ON P.codigo = U.fk_codigo_persona
AND P.tipo_persona='Catador' ORDER BY P.cedula
El problema es que ésta sentencia no efectúa la sentencia AND y por lo tanto me trae la información de todos las personas sin importar su tipo_persona.
¿Cómo puedo hacer que la sentencia me devuelva filas de resultado cuando el tipo_persona sea sólo "Catador"?