Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
Tenho o seguinte SQL funcionando.
SELECT o.*, p.nome AS paciente_nome, p.consultorio AS paciente_medico
FROM outros_exames o, paciente p
WHERE o.hemodinamica = 'S' AND p.codigo = o.paciente AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Alguns (poucos) pacientes tem exame na tabela "exames_laboratoriais" também, preciso trazer os resultados deles. Tentei assim, mas deu erro.
SELECT o., p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.
FROM outros_exames o, paciente p
LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente
WHERE o.hemodinamica = 'S' AND p.codigo = o.paciente AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Alguém poderia me ajudar?
Obrigado
Olá Motta,
Tentei fazer assim:
SELECT o., p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.
FROM outros_exames o, paciente p
LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente AND o.hemodinamica = 'S' AND p.codigo = o.paciente AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Mesmo assim dá erro.
Mensagem do MySQL: Documentação
#1054 - Coluna 'o.paciente' desconhecida em 'on clause'
SELECT o., p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.
FROM paciente p
LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente
LEFT JOIN outros_exames o ON o.hemodinamica = 'S' AND p.codigo = o.paciente
AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Creio ser isto aí acima.
Eu faria assim:
SELECT o., p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.
FROM paciente p
LEFT JOIN outros_exames o ON p.codigo = o.paciente
LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente
WHERE o.hemodinamica = 'S'
AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Confira se não dará erro?
>
SELECT o., p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.
FROM paciente p
LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente
LEFT JOIN outros_exames o ON o.hemodinamica = 'S' AND p.codigo = o.paciente
AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Creio ser isto aí acima.
Deu erro.
#1054 - Coluna 'o.paciente' desconhecida em 'on clause'
>
Eu faria assim:
SELECT o., p.nome AS paciente_nome, p.consultorio AS paciente_medico, l.
FROM paciente p
LEFT JOIN outros_exames o ON p.codigo = o.paciente
LEFT JOIN exames_laboratoriais l ON o.paciente = l.paciente
WHERE o.hemodinamica = 'S'
AND o.data between '2015-01-01' AND '2015-08-01'
ORDER BY o.codigo
Confira se não dará erro?
Hugo deu certo. Era isso mesmo.
Muito obrigado a todos :)
Coloque as condições dactabela de exames dentro do ON e não no WHERE.