Consultas SQL (HELP)

SQL Server

MySQL

PostgreSQL

30/10/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!!
Diego Cerqueira

Diego Cerqueira

Curtidas 0

Respostas

Fernando Vicari

Fernando Vicari

30/10/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:
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.
GOSTEI 0
Anacleto Linux

Anacleto Linux

30/10/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).


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.
GOSTEI 0
Anacleto Linux

Anacleto Linux

30/10/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).


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.
GOSTEI 0
POSTAR