Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Junte duas tabelas com duas colunas SQL Server 2008 R2


Você se junta de volta à mesa novamente, então parece que você está saindo da mesma mesa duas vezes (uma para a consulta do médico assistente, uma para a consulta do médico de admissão).
SELECT a.doc_name as attending_name, 
       b.somefield, 
       a2.doc_name as admitting_name

FROM doctors a, 
     someothertable b, 
     doctors a2

WHERE a.doc_id = b.attending_doc_id
  AND a2.doc_id = b.admitting_doc_id
  AND b.record_id = <whatever>

e seu inner join para a tem como alvo o primeiro médico, o join para a2 tem como alvo o segundo médico.

Perdoe o pseudo-código, mas acho que você entendeu. Você notará que a e a2 estão obtendo o campo doc_name da tabela de médicos, mas estão unidos aos diferentes IDs da tabela b.