Array
(
)

Consultas SQL (HELP)

Diego Cerqueira
   - 30 out 2015

Boa noite! Sou iniciante em SQL e estou com algumas dúvidas quanto a buscas no meu banco para resolução de alguns exercicios na faculdade.
Tenho 2 tabelas medicos e pacientes e preciso buscar todos os nomes dos medicos e de todos os pacientes..
Porém ao realizar a busca com
SELECT paciente.nome,medico.nome FROM paciente,medico
os dados ficam multiplicados, queria gerar um relatório tipo: colona 1 nome de todos pacientes, coluna 2 nome de todos os médicos.
Alguém pode me ajudar?
Abraços!!

Fernando Vicari
   - 04 nov 2015

Boa noite Diego

Da maneira que você fez para cada registro da tabela paciente você lista todos os médicos o que gera a duplicidade.

Se você somente precisa listar os nomes sugiro você utilizar um union:
#Código

select nome from paciente
 union
select nome from medico


Se você deseja saber além do nome se é médico ou paciente pode criar uma coluna com valor fixo em cada um dos selects do union.

Anacleto Linux
   - 06 nov 2015

Podes fazer pela dica do Fernando Cezar Vicari mesmo ou então por esta:

como tens duas tabelas Médico e Paciente e queres só nome dos dois, podes fazer uma junção de tabelas. Vamos supor que um médico atende vários pacientes, mas um paciente só pode ser atendido por um médico (é só um exemplo).

#Código


SELECT t1.NomeMed AS Nome do Médico, t2.NomePac AS Nome do Paciente
FROM Tb_Medico AS t1
INNER JOIN Tb_Paciente AS t2 ON t1.CodMed = t2.CodMed;


Resultado:

Nome do Médio Nome do Paciente
Anacleto Bunga Diego Cerqueira
Juliana Pedro Stive Job

Espero ter ajudado.

Anacleto Linux
   - 06 nov 2015

Podes fazer pela dica do Fernando Cezar Vicari mesmo ou então por esta:

como tens duas tabelas Médico e Paciente e queres só nome dos dois, podes fazer uma junção de tabelas. Vamos supor que um médico atende vários pacientes, mas um paciente só pode ser atendido por um médico (é só um exemplo).

#Código


SELECT t1.NomeMed AS Nome do Médico, t2.NomePac AS Nome do Paciente
FROM Tb_Medico AS t1
INNER JOIN Tb_Paciente AS t2 ON t1.CodMed = t2.CodMed;


Resultado:

#Código
  

 Nome do Médio          Nome do Paciente
Anacleto Bunga          Diego Cerqueira
Juliana Pedro              Stive Job
     


Espero ter ajudado.