Consulta em 3 tabelas (mysql)

Estou tentado fazer um select em 3 tabelas, mas não estou tendo sucesso, exemplo:

select id_consulta, paciente.nome, medico.nome, especialidade.nome, data_marcacao_consulta, dia_consulta from paciente inner join medico inner join especialidade on consulta.id_paciente=paciente.id_paciente and consulta.id_medico=medico.id_medico and consulta.id_especialidade=especialidade.id_especialidade

se fosse em duas não teria muito problema, mas tenho 3 tabelas

  • paciente (id_paciente, cpf , …)
  • especialidade(id_especialidade, nome, …)
  • medico(id_medico, nome, …)

e quero fazer o select na tabela consulta onde tem uma chave estrangeira para paciente, especialidade e medico e quero fazer algo assim: select id_consulta, paciente.nome, medico.nome, especialidade.nome, data_marcacao_consulta, dia_consulta

-------criando uma table consulta ficou (id_consulta, id_medico, id_paciente, id_especialidade, dia_marcacao_consulta, dia_consulta)------

Espero que tenho conseguido me explicar o suficiente

Cade a tabela consulta que liga todas as outras, e porque não está dando certo, você não apontou o problema?

Tabela consulta:

  • id_consulta
  • id_medico
  • id_paciente
  • id_especialidade
  • dia_marcacao_consulta
  • dia_consulta

Você deve fazer a pesquisa pela tabela principal de dados que no caso é consulta, e na sua pergunta está a tabela paciente, porque se não você busca todos os pacientes e no caso é todas as consultas … Precedência de tabela, qual é a tabela que a sua busca se base-a?

Então:

SELECT 
    c.id_consulta,
    c.id_medico,
    c.id_paciente,
    c.id_especialidade,
    c.dia_marcacao_consulta,
    c.dia_consulta,
    e.nome nome_paciente,
    p.cpf cpf_paciente,
    m.nome nome_medico
FROM consulta c 
    INNER JOIN paciente p on p.id_paciente = c.id_paciente 
    INNER JOIN medico m on m.id_medico = c.id_medico
    INNER JOIN especialidade e on e.id_especialidade = c.id_especialidade

isso é um exemplo que ainda pode sofrer outras alterações para adição de campos das outras tabelas … mas, basicamente você começou pela tabela errada!