SQL complicado - Relacionar registros
Olá, boa tarde.
Vamos ver se consigo explicar meu problema:
Tenho uma tabela:
codigo1 | codigo2
--------------------
A | B
A | C
D | A
C | E
F | G
Bem, essa é a estrutura de uma tabela onde armazeno a equivalencia de cada código, independente da coluna onde ele se encontra.
Por exemplo: Quais são os equivalentes do código A?
A = B, A = C, A = D.
Até ai, tudo bem. Basta pesquisar o código A nas duas colunas que terei os equivalentes a ele.
SELECT * FROM tabela WHERE codigo1='A' OR codigo2 = 'A'
Porém, com isso, logicamente, o código B = C por que AMBOS são equivalentes ao código A. Ou seja:
Se A = B e A = C então B = C. Certo?
Esse seria o objetivo dessa tabela. Fazer essa amarração entre código.
Agora seguindo essa linha de raciocínio, podemos dizer que A = E por que o C = E, e como o A = C, então também A = E
Mesmo não existindo esse registro na minha tabela, A = E, eu precisava exibir esse resultado, e ai que está o problema:
Como fazer um SQL para retornar essa 'equivalencias' para mim num único resultado?
(Poderia até ser uma procedure.)
O resultado que eu preciso seria: Quais os equivalentes a A?
Resposta: B, C, D e E
Será que deu pra entender meu problema?
Agradeço desde já pela ajuda.