Comparison with 3 tables

0
create table Pessoa (
    id int not null primary key auto_increment,
    nome varchar(150) not null,
    cidade varchar(100) not null,
    cpf char(14) not null unique,
    rg int not null unique,
    INDEX idx_nome(nome)
);

create table conta(
    id int not null primary key auto_increment,
    numero int not null,
    agencia int not null,
    saldo decimal(20,2) not null,
    pessoa_id int not null,
    foreign key(pessoa_id) references Pessoa(id)
        ON UPDATE CASCADE,
    INDEX idx_numero_agencia(numero, agencia)
);

create table medico(
    pessoa_id  int primary key not null,
    especialidade varchar(100)not null,
    FOREIGN KEY(pessoa_id) references Pessoa(id)
        ON UPDATE CASCADE
);

create table paciente (
    pessoa_id int primary key not null,
    doenca varchar(100)  not null,
    FOREIGN KEY(pessoa_id) references Pessoa(id)
        ON UPDATE CASCADE
        ON DELETE RESTRICT
);

create table consulta(
    medico_id int,
    paciente_id int,
    horario datetime not null,
    FOREIGN KEY(medico_id) references medico(pessoa_id)
        ON UPDATE CASCADE
        ON DELETE RESTRICT,
    FOREIGN KEY(paciente_id) references paciente(pessoa_id)
        ON UPDATE CASCADE
        ON DELETE RESTRICT,
    INDEX idx_medico_horario(medico_id,horario),
    INDEX idx_paciente_horario(paciente_id,horario)
);
select Pessoa.nome 'Nome do Médico',
    Pessoa.cpf 'CPF do Médico',
    Pessoa.nome 'Nome do Paciente',
    Pessoa.cpf 'CPF do Paciente',
    consulta.horario 'Horário da Consulta'
    from Pessoa inner join consulta on (consulta.medico_id = Pessoa.id) 
    inner join medico on (consulta.medico_id = Pessoa.id)
    inner join paciente on (consulta.paciente_id= Pessoa.id)
    order by consulta.horario asc;

I created a bank where a person can be a doctor or patient, but when I show the table that shows the name and the cpf of the doctor, and the name and the cpf of the patient, it gives error.

    
asked by anonymous 20.09.2017 / 16:18

0 answers